浏览器中的源代码和file_get_contents给出不同的代码

Source in browser and file_get_contents give different codes

本文关键字:代码 contents get 源代码 file 浏览器      更新时间:2023-09-26

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

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

试试这个库 Simple HTML Dom 解析器。

和使用

$html = file_get_html('http://www.google.com/');
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

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