如何使用“;启用JavaScript的”;?

如何使用“;启用JavaScript的”;?,javascript,php,html,stream,Javascript,Php,Html,Stream,我想用PHP从页面中获取HTML代码。所以我这样做: $url = 'http://en.wikipedia.org/wiki/New_York_City'; $html = file_get_html($url); 问题是,Wikipedia没有向PHP请求发送标记,因此它没有显示JavaScript。 我猜这是因为Wikipedia看到“请求者”没有启用JavaScript,所以它没有发送标记 我如何让维基百科知道我的PHP支持JavaScript 我听说了流上下文,但我不知道如何为它设置

我想用PHP从页面中获取HTML代码。所以我这样做:

$url = 'http://en.wikipedia.org/wiki/New_York_City';
$html = file_get_html($url);
问题是,Wikipedia没有向PHP请求发送
标记,因此它没有显示JavaScript。 我猜这是因为Wikipedia看到“请求者”没有启用JavaScript,所以它没有发送
标记

我如何让维基百科知道我的PHP支持JavaScript


我听说了流上下文,但我不知道如何为它设置启用JavaScript。

您可以使用Iframe


您也可以使用jQuery之类的工具将页面(或页面的某些部分)抓取到您的网站上。

看起来
file\u get\u html()
函数正在剥离
块,因为我试图在没有任何请求头的情况下从Fiddler请求
get/wiki/Main\u page HTTP/1.1
,它确实在响应中返回了
块。

这应该是可行的

$url = 'http://en.wikipedia.org/wiki/New_York_City';
$html = file_get_contents($url);

在我的本地PHP服务器上进行了测试。

多亏了symcbean,下面是解决方案

我补充说:

ini_set('user_agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9');
现在它正在发送正确的脚本块


)()

默认php库中没有文件\u get\u html。你从哪里得到这个函数的?是的,我忘了提。file_get_html是simple_html_dom的一个函数。试着为一个支持javascript的浏览器假装一个用户代理,它确实有效!谢谢!;)哇,有些人真的相信jquery是一切的答案。他确实指定他正在寻找一个PHP解决方案。而且,你不能单独用JavaScript来刮取另一个页面。。。这对我不起作用。它总是在不使用任何javascript的情况下获取html。那么,这可能取决于服务器的配置?我在这个免费的主机上测试它,它对文件内容也做同样的测试。这可能取决于用户代理吗?@davidev:我在没有用户代理标题的情况下尝试了Fiddler,但仍然收到了
块。理论上,它可以根据用户代理提供不同的内容,但我怀疑维基百科是否在这样做。这会使他们的缓存过程复杂化。嗯,我不知道。我将在另一个Web服务器上试用。无论如何,谢谢你!