使用perl执行所有JavaScript页面

时间:2012-10-15 16:16:17

标签: javascript perl web-scraping

  

可能重复:
  How can I get dynamically web content using Perl?

我一直在研究如何让javascript在网页上执行,但并不完全了解某些解决方案。

我将以TechCrunch为例。如果您查看TechCrunch上的文章,您会在每个页面的顶部看到,它们都有一个视觉效果,可以显示该页面已完成了多少推文,喜欢,评论。如果我想抓取这个页面并收集这些信息,perl会有解决方案吗?

我看过WWW :: Scripter和WWW :: Mechanize :: Plugin :: JavaScript。可能是因为我不完全理解他们提供的内容。但是有没有办法让我传入一个URL并让它在页面上运行javascript,就像浏览器一样,无需传递变量,或其他任何特殊的东西来让它执行。

1 个答案:

答案 0 :(得分:0)

这很难做到。你本质上已经让你的Perl运行一个完整的浏览器引擎,加载并运行所需的页面,然后检测页面何时被加载,你将不知何故必须进入该浏览器引擎才能访问DOM(可能是注入了javascript)从该页面读出值。这很复杂,因为你想要的数据不存在于页面HTML中,它通过javascript插入到页面中。

更实际的解决方案是涉及逆向工程,页面本身从中获取数据,然后从服务器上的perl构建自己的Web调用,从页面从中获取数据的地方获取数据。< / p>

在任何一种情况下,如果您没有使用公开的,记录在案的API,那么如果主机改变了获取数据的方式,您的方法就会随时中断。