0

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

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

4

3 回答 3

3

试试这个库Simple HTML Dom Parser

并使用

$html = file_get_html('http://www.google.com/');
于 2013-01-29T10:26:08.953 回答
1

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

于 2013-01-29T10:22:02.043 回答
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

于 2013-01-29T11:01:07.813 回答