0

可能重复:
如何使用 Perl 获取动态 Web 内容?

我一直在审查让 javascript 在网页上执行的方法,但不完全理解一些解决方案。

我将以 TechCrunch 为例。如果您查看 TechCrunch 上的一篇文章,您会在每个页面的顶部看到,它们有一个视觉效果来显示该页面已经完成了多少推文、点赞、评论。如果我想抓取此页面并收集该信息,perl 中是否有解决方案?

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

4

1 回答 1

0

这是很难做到的。您实际上会让您的 Perl 运行一个完整的浏览器引擎,该引擎加载并运行所需的页面,然后检测页面何时加载,您将不得不以某种方式进入该浏览器引擎以访问 DOM(可能通过注入javascript) 从该页面读出值。之所以如此复杂,是因为您想要的数据不在页面 HTML 中,而是通过 javascript 插入页面中。

更实用的解决方案将涉及逆向工程,页面本身从中获取数据,然后从服务器上的 perl 构建您自己的 Web 调用,从页面获取数据的同一位置获取数据。

在任何一种情况下,如果您不使用公共的、记录在案的 API,如果主机更改了他们获取数据的方式,您的方法随时可能中断。

于 2012-10-15T16:19:39.577 回答