当前位置:  开发笔记 > 编程语言 > 正文

Perl的WWW :: Mechanize如何扩展用JavaScript添加自己的HTML页面?

如何解决《Perl的WWW::Mechanize如何扩展用JavaScript添加自己的HTML页面?》经验,为你挑选了1个好方法。

正如前一个问题所述,我正在为QuakeLive网站编写一个爬虫程序.
我一直在使用WWW :: Mechanize来获取网页内容,这对所有网页都有效,除了匹配的网页.问题是我需要获得所有这些ID:

这些用于构建特定的匹配URL,但我根本不能.

我设法只通过FireBug看到这些ID,没有我试过的页面下载器,解析器,getter能够在这里提供帮助.我所能得到的只是一个更简单的页面版本,你可以通过Firefox中的"显示源代码"来看到该代码.

由于FireBug显示了ID,我可以放心地假设它们已经被加载,但是后来我无法理解为什么没有其他东西可以获取它们.它可能与JavaScript有关.

你可以在这里找到一个页面示例



1> rafl..:

要获得包含这些ID的DOM,您可能必须在该站点上执行javascript代码.我不知道任何允许你这样做的库,然后在perl中内省生成的DOM,所以只是控制一个实际的浏览器,然后再询问它的DOM,或者只是它的一部分,看起来好像如何解决这个问题.

各种浏览器提供了以编程方式控制的方法.使用基于Mozilla的浏览器,例如Firefox,这可以像加载mozrepl到浏览器一样简单,从perl空间打开一个套接字,发送几行javascript代码来实际加载该页面,然后再添加一些javascript代码你是你感兴趣的DOM的部分.然后,您可以使用CPAN上的许多JSON模块之一进行解析.

或者,您可以处理在页面上执行的javascript代码并找出它实际执行的操作,然后在您的爬网程序中模仿它.


[`WWW :: Mechanize :: Firefox`](http://p3rl.org/WWW::Mechanize::Firefox)简化了mozrepl,不需要这么做.
推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有