浏览器中的源和file_get_contents提供不同的代码

时间:2013-01-29 10:19:39

标签: php javascript gmail

我从浏览器和file_get_contents中获取了http://gmail.com源代码,两者都不同。

我如何获得在浏览器中显示的相同源代码,使用php或js或任何其他编程语言(但我喜欢php或js)

3 个答案:

答案 0 :(得分:3)

试试这个图书馆Simple HTML Dom Parser

并使用

$html = file_get_html('http://www.google.com/');

答案 1 :(得分:1)

浏览器显示生成的google.com源代码,而php只获取写在谷歌索引文件中的文本,这是Javascript ofcourse!

答案 2 :(得分:1)

gmail.com几乎可以肯定用户代理嗅探根据发出请求的浏览器改变输出(尽管它被认为是不好的做法,尽管谷歌惩罚其他人这样做)。所以我的猜测是你甚至不可能在两个不同的浏览器之间获得相同的源代码,更不用说如果你用file_get_contents获取它了。

如果您使用cURL库,并且欺骗UA字符串,您可能会到达某处,但即使完全正常工作,我也不会指望。

但即使你这样做并且它有效,gmail.com作为一个网站真的很大程度上依赖于动态加载的内容;甚至部分脚本也只在需要时加载。我看不出任何可能的方法将gmail站点加载到PHP脚本中可能是远程有用的。即使你确实按照自己的意愿加载它,那么呢?他们不断更改代码,因此尝试编写程序来解析HTML代码将是徒劳和挫败的练习。

我想真正的问题是你想在这里实现什么?如果你想从gmail加载你的邮件,他们会为这种事情提供适当的API,这比尝试解析gmail站点本身更好,更可靠。我想不出你想要做的其他许多原因,所以也许你应该研究一下API。

可以在此处下载适用于PHP的Gmail API:http://code.google.com/p/gmail-api/downloads/detail?name=gmail-api.v0.1.php

相关问题