2010-03-09 100 views
3

我想从PHP页面获取HTML代码。所以我这样做:如何通过“启用JavaScript”获取HTML?

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

的问题是,维基百科不将<script>标签发送到PHP请求,所以它不会显示的JavaScript。 我想这是因为维基百科认为“请求者”没有启用JavaScript,所以它不会发送<script>标签。

我如何让维基百科知道我的PHP是已启用JavaScript

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

+0

** file_get_html **不在默认的php库中。你从哪里拿这个功能? – 2010-03-09 17:00:30

+0

是的,我忘了提及。 file_get_html是simple_html_dom的一个功能。 – Davide 2010-03-09 19:33:48

+0

尝试伪造一个支持javascript的浏览器的用户代理 – symcbean 2010-03-09 22:49:45

回答

1

感谢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'); 

,现在是发送corret脚本块。

;)

-5

您可以使用Iframe。

你也可以使用类似jQuery的东西来抓取页面(或页面的某些部分)到你的网站上。

+5

哇,有些人确实相信jquery是一切的答案。他确实指出他正在寻找PHP解决方案。 – 2010-03-09 17:06:48

+0

另外,你不能用JavaScript单独刮另一个页面... http://en.wikipedia.org/wiki/Same_origin_policy – Domenic 2010-03-09 23:26:24

1

它看起来像file_get_html()功能被剥离了<script>块,因为我试图从提琴手要求GET /wiki/Main_Page HTTP/1.1没有任何请求头,才在响应返回<script>块。

+0

这与file_get_contents一样。它取决于用户代理吗? – Davide 2010-03-09 19:48:42

+0

@DavidDev:我尝试了没有用户代理标题的Fiddler,并且我仍然收到'

相关问题