如何使用Perl从使用JavaScript动态生成的网页中获取文本?

use*_*747 12 html javascript perl screen-scraping

有一个网站我试图从Perl中提取信息,但我需要的页面部分是使用javascript生成的,所以你在源代码中看到的是:

<div id="results"></div>
Run Code Online (Sandbox Code Playgroud)

我需要以某种方式提取该div的内容并使用Perl/proxies/whatever将其保存到文件中.例如,我想保存的信息将是

document.getElementById('results').innerHTML;
Run Code Online (Sandbox Code Playgroud)

我不确定这是否可能,或者是否有人有任何想法或方法来做到这一点.我正在使用lynx源转储到其他页面,但由于我不能直接屏幕刮这个页面我来这里询问它!

如果有人有兴趣,页面是http://downloadcenter.trendmicro.com/index.php?clk=left_nav&clkval=pattern_file®s=NABU,我试图得到的信息是关于ConsumerOPR的行

fri*_*edo 14

您需要对Javascript正在执行的操作进行反向工程.是否触发了AJAX请求来填充<div>?如果是这样,使用Firebug嗅探请求应该很容易,然后使用LWP :: UserAgentWWW :: Mechanize复制它以获取信息.

如果Javascript只是在进行纯DOM操作,那么这意味着数据必须存在于页面中的其他位置或Javascript中.因此,弄清楚它来自何处并抓住它.

最后,如果这些选项都不合适,您可能需要使用真正的浏览器来完成它.有一些选项可以自动执行浏览器行为,例如WWW :: Mechanize :: FirefoxWin32 :: IE :: Mechanize.