Mojolicious学习笔记-Mojo::UserAgent-2015-02-05
来源:互联网 发布:win7 补丁 软件 编辑:程序博客网 时间:2024/05/16 09:13
最近用 Mojo::UserAgent写了一个程序抓取一个网页的内容。
下面是学习过程中遇到的疑惑:
1. 不想使用默认的User-Agent名称,如何更改?
可以通过Fiddler查看浏览器发request 时它的request header里面User-Agent的名称,然后通过来$ua
->transactor->name(
'xxxxx'
);设置
下面的例子是把User-Agent的名称设置成Chrome的 User-Agent名称。
$ua->transactor->name('Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.93 Safari/537.36');
2. 网站需要输入用户名、密码来验证,如何设置cookie_jar 来存放登录后得到的Cookies ?
不需要显式设置cookie_jar,Mojo::UserAgent 默认情况下会自动从Response中把Cookie取出来放到cookie_jar中,下面代码片段中的注释部分可以验证response中的Cookie确实是被取出来存到cookie_jar中了。
use Mojo::UserAgent;my $ua = Mojo::UserAgent->new;<pre name="code" class="plain">$ua->transactor->name('Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.93 Safari/537.36');my $login_url = "http://example.com/login";my $post_form = {...}my $tx = $ua->post( $login_url => form => $post_form );if ( $tx->success ) { say "Logged in"; #below is to dump out what cookies are stored in the cookie jar. #my @cookies = $ua->cookie_jar->all; #for my $cookie (@cookies) { #say $cookie->to_string; #}}else { say 'Log-in failed,please try again.';}
# Follow redirects to grab the latest Mojolicious release :)
$ua
->max_redirects(5)
->get(
'https://www.github.com/kraih/mojo/tarball/master'
)
->res->content->asset->move_to(
'/Users/sri/mojo.tar.gz'
);
通过Fiddler及查看网页源文件,发现我要访问的网站很多redirect其实是通过Javascript来触发了,浏览器可以执行Javascript,但是Mojo::UserAgent,LWP::UserAgent之类的是不会(应该是也没有这个能力)去执行Response中的Javascript的,如果是response中正常的302 redirect,Mojo::UserAgent就能正常follow了。
4. 我访问的是https页面,需要做什么特殊的设置吗?
如果该网站不需要你提交个人证书去验证身份,那么就不需要特殊设置什么东西。大多数网站是不需要你提供个人证书进行验证的。
0 0
- Mojolicious学习笔记-Mojo::UserAgent-2015-02-05
- Mojolicious学习笔记-2015-01-15
- Mojolicious学习笔记-2015-01-18
- Mojolicious学习笔记-2015-01-26
- Mojolicious学习笔记
- UserAgent
- userAgent
- userAgent
- mojo plugins
- How to avoid Unicode pitfalls in Mojolicious
- Palm Mojo 功能
- Default Mojo Executions
- Maven的Mojo标注
- Maven 插件 Mojo
- mojo 接口示例
- mojo 默认use utf8;
- Mojo 自动发布接口
- Mojo 分析日志接口
- Android 应用正确关闭GPS的方法
- Activity和Fragment之前的通信
- python os.open() os.fchdir()os.chdir() os.close()
- 协同过滤算法——入门
- Fragment和FragmentManager已经Activity三者之间的研究
- Mojolicious学习笔记-Mojo::UserAgent-2015-02-05
- ios 图片轮播详解
- Openfire服务器的安装部署详细步骤
- 关于Ext3.4的Excel的导入
- Maximal Rectangle (Java)
- HBase基本用法 (一)
- 天声人語 20150205
- Tomcat搭建文件服务器
- SQL基础(六)- 删除