Perl 自动化之网页处理 WordPress 自动登陆查看
浏览:2260次 出处信息
自动化处理,和互联网上应用最多的都是基于 HTTP 协议的,原来我使用 Perl 处理,一直感觉有点乱,后来发现其实很简单
第一步:简单了触一下 LWP::UserAgent 模块的基本方法
第二步:在了解一下下面这几个部件就行了HTTP::Request, HTTP::Response,HTTP::Headers,HTTP::Cookies
第三步: 给网页的内容取出来,发现 Perl 中的模块超级给力。使用 Web::Scraper 吧,不二的选择。
下面是我以前写的一个例子,就是自动登陆到我的 Blog 中取出最新的评论来的小例子。大家可以基于这个写一个命令行写 Blog 的小软件。
#!/usr/bin/perl use strict; use warnings; use HTTP::Request; use HTTP::Cookies; use LWP::UserAgent; use Web::Scraper; my $url = 'http://www.php-oa.com/wp-login.php'; # 用来存 cookie my $cookie_jar = HTTP::Cookies->new( file => "./cookies.lwp", autosave => 1, ); # 给处理 cookie 的对象放到 LWP::UserAgent 中来处理 cookie # 登陆中 my $ua = LWP::UserAgent->new; my $cookies = $ua->cookie_jar($cookie_jar); $ua->agent('Mozilla/6 [cn] (Ubuntu; Linux)'); my $res = $ua->post( $url, [ log => 'admin', pwd => 'passwd', 'wp-submit' => 'Log In', ], ); # 根据重定向的地址,给原来的 cookie 拿上 my $redirect_to = $res->header('location'); my $req = HTTP::Request->new(GET=>$redirect_to); $cookie_jar->add_cookie_header($req); my $new_res = $ua->request($req); # 处理返回的结果 Response 取出自己要的内容 my $scraper = scraper { process '/html/body/div/div/div[2]/div/div[2]/div[2]/div/div/div/div[2]/div[2]/div/div/div/blockquote/p','comment[]' => 'TEXT'; }; my $result = $scraper->scrape( $new_res->content ); # 输出结果 my @comments = @{ $result->{comment} }; for ( 0 .. $#comments ) { print "$_. $comments[$_]\n"; }
Web::Scraper 非常推荐,详细的使用,可以看我以前的文章:
建议大家学习参考:http://www.perl.com/pub/2002/08/20/perlandlwp.html
建议继续学习:
- 自动化测试中Python与C/C++的混合使用 (阅读:3872)
- 自动化运维之企业实际案例分析 (阅读:3728)
- 自动化测试之惑 (阅读:2597)
- Linux大棚版gtest官网教程译文 (阅读:2623)
- 让前端工作更快、更智能:利用StaticPage自动化工作流 (阅读:2582)
- linux下搭建pxe自动化安装环境 (阅读:2505)
- 系统自动化配置和管理工具 SaltStack (阅读:1783)
- 如何设计软件模块的自动化测试? (阅读:1694)
- CC-lib无线跨平台web页面自动化生成技术的设计实现 (阅读:1580)
- 环境为王-论贴吧环境解决方案 (阅读:1461)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:使用 Perl 实现 HTTP 代理
后一篇:一个空格引发的惨剧 >>
文章信息
- 作者:扶凯 来源: 扶凯
- 标签: 自动化
- 发布时间:2011-06-10 14:07:42
建议继续学习
近3天十大热文
- [66] Oracle MTS模式下 进程地址与会话信
- [65] 如何拿下简短的域名
- [65] Go Reflect 性能
- [59] 【社会化设计】自我(self)部分――欢迎区
- [59] IOS安全–浅谈关于IOS加固的几种方法
- [59] 图书馆的世界纪录
- [59] android 开发入门
- [53] 视觉调整-设计师 vs. 逻辑
- [47] 界面设计速成
- [47] 读书笔记-壹百度:百度十年千倍的29条法则