2012-09-13 40 views
1

可能重复:
Make a JavaScript-aware Crawler网站刮板是处理JavaScript

我想弄清楚,作为一个基于PHP网页刷屏,能够处理网页的基础上使用什么使用JavaScript进行渲染。除非这些页面中的JS被执行,否则许多网站刮擦尝试(至少我处理的)现在失败。这些页面不是为了适当地回退到无脚本实现而构建的。这包括那些大量使用AJAX的。

任何人都可以从哪里开始开发一个可以处理现代和严重依赖JavaScript的网页的网页抓取工具?

PHP可以使用的东西是最好的。

+0

你在刮什么页?为了什么内容? – 2012-09-13 21:05:11

+0

你不能用PHP刮掉一个JS页面 –

+0

@Dragon很多不同的页面有很多不同的内容。有些网站在没有JS的情况下根本无法运行。对不起,听起来含糊不清。其中一些是为客户提供的私人工作。 – eComEvo

回答

2

可以在无头模式下使用Web浏览器引擎来加载页面并分析DOM。一些谷歌搜索指向我http://phantomjs.org/

+0

这可能会使用[pjscrape](http://nrabinowitz.github。com/pjscrape /)与一个PHP网址通过使用jQuery来处理被刮取的结果到数据库。 – eComEvo

1

那些ajax使用量很大的网站,只需调用与网页相同的网址,然后在该响应中构建网站内容而不是请求网页。

有沉重的文件撰写或框架等价物,你很可能只是用简单的正则表达式剥离空间或匹配的标签或相关内容,并再次这些网站要求脚本负责,而不是要求它的网页...

0

你将不得不在PHP中有一个JavaScript引擎。或者在命令行中使用一些无头Webkit。即使如此,它会变得非常复杂。所以简短的回答是:不,对不起,你不能那样做。

0

PHP支持V8引擎,所以我想你可以通过JavaScript到V8。虽然不是一件好事,但我会使用别的东西而不是直接的PHP来做到这一点。

1

你可以使用Selenium这是一个浏览器自动化工具,然后使用PHP绑定herehere之一,or here这样你就可以从PHP自动硒。

+0

硒看起来很有用。可能对我想到的其他一些应用程序非常有帮助。谢谢! – eComEvo