浏览器中的源代码和file_get_contents给出不同的代码
Source in browser and file_get_contents give different codes
我从浏览器中获取了 http://gmail.com 源代码,通过file_get_contents,两者都是不同的。
我怎样才能获得与浏览器中显示的相同的源代码,使用 php 或 js 或任何其他编程语言(但我更喜欢 php 或 js)
试试这个库 Simple HTML Dom 解析器。
和使用
$html = file_get_html('http://www.google.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!
- 从桌面读取python文件时高亮显示代码
- 如何将函数包装在函数中以避免代码重复
- 通过单击表单中的按钮,在代码生成中使用javascript生成字母数字代码
- 货币代码为欧元-金额的格式不应包含小数
- Regex代码只允许一个空格
- 如何将屏幕分辨率乘以 80%,然后在代码中使用
- 从var向代码隐藏函数传递值
- 如何动态插入jquery代码
- 如何在php变量中嵌入JQuery代码
- 代码不会验证
- 如何从rails中的代码中删除新行( )
- Angularjs代码未在匿名函数中运行
- 如何做到这一点,使代码在不传递条件后执行函数
- 如何在读取XLS/XLSX本地文件时,使用IE的javascript代码启用未标记为安全的ActiveX控件
- 面向对象的Javascript代码在IE7中不起作用
- 将 jQuery 代码添加到 Index.aspx 页面
- 为什么忽略了eval()代码中的语法错误
- 元素在我的代码中不会.fadeTo.Don'I don’我不知道;s错误的JavaScript、JQuery、H
- 如何轻松地将服务器端变量从Java代码转移到客户端代码
- 代码只能在jsfiddle中工作