Web爬虫:使用Perl的MozRepl模块来处理Javascript

Web爬虫:使用Perl的MozRepl模块来处理Javascript,第1张

概述我试图通过使用网络爬虫来保存几个网页.通常我更喜欢使用perl的WWW :: Mechanize模块.但是,据我所知,我试图抓取的网站上有许多 javascripts,似乎很难避免.因此,我研究了以下perl模块 > WWW::Mechanize::Firefox > MozRepl > MozRepl::RemoteObject Firefox MozRepl extension本身运行良好.我 我试图通过使用网络爬虫来保存几个网页.通常我更喜欢使用perl的WWW :: Mechanize模块.但是,据我所知,我试图抓取的网站上有许多 javascripts,似乎很难避免.因此,我研究了以下perl模块

> WWW::Mechanize::Firefox
> MozRepl
> MozRepl::RemoteObject

firefox MozRepl extension本身运行良好.我可以使用终端来按照开发人员教程中显示的方式导航网站 – 理论上.但是,我不知道JavaScript,因此很难正确使用模块.

所以这是我喜欢的源头:Morgan Stanley

对于“公司 – 截至10/14/2011”之下的几家上市公司,我喜欢保存各自的页面.例如.点击第一个上市公司(即’1-800-Flowers.com,Inc’),用两个参数调用JavaScript函数 – > dtxt(‘FLWS.O’,’2011-10-14′),它产生所需的新页面.我现在想要在本地保存的页面.

使用perl的MozRepl模块,我想到了这样的事情:

use strict;use warnings;use MozRepl;my $repl = MozRepl->new;$repl->setup; $repl->execute('window.open("http://www.morganstanley.com/eqr/disclosures/webapp/coverage")');$repl->repl_enter({ source => "content" });$repl->execute('dtxt("FLWS.O","2011-10-14")');

现在我想保存生成的HTML页面.

所以,我想制作的所需代码应该访问几个公司的HTML网站,只需保存网页即可. (这里有三家公司:MMM.N,FLWS.O,SSRX.O)

>这是正确的,我不能绕过页面的JavaScript函数,因此无法使用WWW :: Mechanize?
>在问题1之后,提到的perl模块是否采用合理的方法?
>最后,如果你说前两个问题可以用yes表示,那么如果你可以帮我解决实际的编码问题会非常好.例如.在上面的代码中,缺少的基本部分是’save’命令. (也许使用firefox的savedocument函数?)

解决方法 Web通过http请求和响应工作.

如果您能发现正确的发送请求,那么您将得到正确的响应.

如果目标站点使用Js来形成请求,那么你可以执行Js,
或者分析它的作用,这样你就可以用你正在使用的语言做同样的事情.

更简单的方法是使用一个工具来捕获生成的请求,无论请求是否由Js创建,然后您可以制作您的抓取代码
创建所需的请求.

AT& T的“Web ScraPing Proxy”就是这样一个工具.

您进行了设置,然后正常浏览网站以进入您想要抓取的页面,
WSP将为您记录所有请求和响应.

它以Perl代码的形式记录它们,然后您可以根据需要进行修改.

总结

以上是内存溢出为你收集整理的Web爬虫:使用Perl的MozRepl模块来处理Javascript全部内容,希望文章能够帮你解决Web爬虫:使用Perl的MozRepl模块来处理Javascript所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1054013.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-25
下一篇2022-05-25

发表评论

登录后才能评论

评论列表(0条)

    保存