免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 7713 | 回复: 21
打印 上一主题 下一主题

求助:用perl下载需要用户名密码网站里的网页 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-06-03 10:33 |只看该作者 |倒序浏览
我需要下载一个网站里的网页,但是需要用户名和密码登陆的,有一个公共用户,直接点击就可以进入了,我用perl如何去下载呢?需要调用哪些模块?求助各位大虾帮助,不胜感激.....
备注:我是要下载中国林业信息网这个网站,URL是http://www.lknet.ac.cn/page/framelimit.cbs?ResName=lysy

论坛徽章:
0
2 [报告]
发表于 2011-06-03 12:24 |只看该作者
我需要下载一个网站里的网页,但是需要用户名和密码登陆的,有一个公共用户,直接点击就可以进入了,我用pe ...
luoyong55 发表于 2011-06-03 10:33



    试试WWW::Mechanize,不行的话用Win32::IEAutomation:
http://search.cpan.org/~prashant ... n32/IEAutomation.pm

论坛徽章:
0
3 [报告]
发表于 2011-06-03 14:28 |只看该作者
回复 2# 兰花仙子


    官方网站介绍用法,可是我有些地方看不懂,热心的花仙子可否指点一下,谢谢啦~
    use WWW::Mechanize;
    my $mech = WWW::Mechanize->new();

    $mech->get( $url );

    $mech->follow_link( n => 3 );
    $mech->follow_link( text_regex => qr/download this/i );    #.....这里我不懂是什么意思
    $mech->follow_link( url => 'http://host.com/index.html' );

    $mech->submit_form(
        form_number => 3,
        fields      => {
            username    => 'mungo',
            password    => 'lost-and-alone',
        }
    );

    $mech->submit_form(
        form_name => 'search',
        fields    => { query  => 'pot of gold', },    #.....这里我也不懂是什么意思
        button    => 'Search Now'       );#.....这里也不懂
    );

论坛徽章:
0
4 [报告]
发表于 2011-06-03 16:03 |只看该作者
$mech->submit_form(
        form_name => 'search',
        fields    => { query  => 'pot of gold', },    #.....这里我也不懂是什么意思
        button    => 'Search Now'       );#.....这里也不懂
    );


WWW::Mech最有用的就是这个方法,它模拟提交一个表单。
form_name是表单控件名,fields是表单域值,button应该是按钮的值。
你用dreamwaver之类生成一个表单看下其源码就知道了。

论坛徽章:
0
5 [报告]
发表于 2011-06-03 16:11 |只看该作者
非常感谢花仙子...

论坛徽章:
0
6 [报告]
发表于 2011-06-03 16:27 |只看该作者
回复 4# 兰花仙子


    我已经安装了HTTP::Response,也调用了HTTP::Response,为什么还是提示:Missing base argument at C:/Perl/lib/HTTP/Response.pm line 93

论坛徽章:
0
7 [报告]
发表于 2011-06-05 17:33 |只看该作者
如果安全性考虑得好,没那么容易下载的。

论坛徽章:
0
8 [报告]
发表于 2011-06-05 23:20 |只看该作者
仙子版主为啥不推荐LZ用简单易用的LWP呢?

论坛徽章:
0
9 [报告]
发表于 2011-06-07 17:43 |只看该作者
回复 8# x9x9


    LWP也可以模拟POST登陆吗?

论坛徽章:
0
10 [报告]
发表于 2011-06-07 18:07 |只看该作者
回复  x9x9


    LWP也可以模拟POST登陆吗?
luoyong55 发表于 2011-06-07 17:43


应该可以吧。
  1. use LWP::UserAgent;

  2. my $login_url='the_url';
  3. my $user='';
  4. my $pass='';
  5. my $ie = LWP::UserAgent->new( );
  6. $ie->cookie_jar( {} );
  7. $ie->agent('Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)');
  8. my $response = $ie->post( $login_url, [ 'username' => $user, 'password' => $pass , ] );
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP