我正在试图找出使用什么作为基于PHP的Web scraper的基础,它可以处理使用JavaScript呈现的页面。许多网站刮擦尝试(至少我处理的尝试)现在都失败了,除非这些页面中的JS被执行。这些页面不是为了优雅地回退到无脚本实现而构建的。这包括大量使用AJAX的那些。
是否有人建议从何处开始开发可以处理现代和严重依赖JavaScript的网页的网络抓取工具?
PHP可以使用的东西最好。
答案 0 :(得分:2)
可以在无头模式下使用Web浏览器引擎来加载页面并分析DOM。一些谷歌搜索引导我http://phantomjs.org/
答案 1 :(得分:1)
那些使用大量Ajax的网站,只需调用与网页相同的网址,并在该响应上构建您的网站内容,而不是请求该网页。
那些拥有大量document.write或框架等效的网站,您可能只是使用简单的正则表达式删除空格或匹配标签或相关内容,并再次请求负责的脚本而不是请求它的页面...
答案 2 :(得分:1)
答案 3 :(得分:0)
你必须在PHP中拥有一个JavaScript引擎。或者在命令行上使用一些无头Webkit。即便如此,它也会变得非常复杂。所以简短的回答是:不,对不起,你不能这样做。
答案 4 :(得分:0)
PHP支持V8引擎,所以我猜你可以将javascript传递给V8。虽然不是一件好事,我会使用其他东西而不是直接的PHP来做这件事。