我曾经使用 JQuery 加载外部网站内容(html/json)。我还获得了一个代理 PHP 页面,可以与一些具有严格来源政策的网站一起使用。
我的问题是针对某些网站:
在他们的 HTML 源代码中:<span id='target'>0.00</span>
在 Chrome 中浏览此外部页面时:SPAN 值设置为X
我尝试直接 JQuery $.get/$.ajax 和 PHP 代理,返回的所有值是0.
有什么办法可以得到最终的值X?我知道这是不可能的,因为很难模拟浏览器操作来运行远程 JavaScript。
我可以在我的服务器中测试任何内容,因此如果您知道任何可行的方法,请在此处分享。谢谢!
我可以想到两个选择。一个是好的、明智的、快速的,等等。另一个是愚蠢的,是一个非常糟糕的主意,但玩起来很有趣。您的两个选择是:
- Use Phantom.js http://phantomjs.org
- 通过 PHP 脚本获取外部站点的源代码,将其加载到页面中并使用 jQuery 查找值。
第一个选项是正确且明智的。Phantom.js 启动无头 Webkit 浏览器,加载、运行,然后解析页面并将其提供给您。还有一个 PHP 包装器 https://github.com/jonnnnyw/php-phantomjs,因此您可以通过 PHP 快速完成
或者,你可以这样做:
通过 PHP 使用 jQuery / jQuery,您可以获取实时网站的源代码,将其嵌入到当前页面中,然后使用 JavaScript 提取值。如果您在外部站点上没有适当的 Access-Control-Allow-Origin 标头,您将无法通过 JavaScript 来完成此操作,因此您必须通过您自己的域上的 PHP 脚本来路由它。
我已经完成了一个快速的 JSFiddle 它将获取 JSFiddle Google 验证<meta>
使用我上面描述的技术从页面中标记。它在这里:http://jsfiddle.net/USPVJ/1/ http://jsfiddle.net/USPVJ/1/.
我必须强烈反对这样做。通过这样做,您将绕过任何同源限制(这些限制的存在是有充分理由的),并将外部代码注入您的网站。在做任何类似的疯狂事情之前,请确保您充分了解内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)