首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

PERL操作网页的相关有关问题

2013-02-24 
PERL操作网页的相关问题学了下perl的皮毛,现在有几个问题想问一下:我的需求是打开一个网页,输入用户名和密

PERL操作网页的相关问题
学了下perl的皮毛,现在有几个问题想问一下:
我的需求是打开一个网页,输入用户名和密码后点登录,进入下一个网页,点取某图片按钮后,再取数据,其间其URL不变,我有这样几个问题:
问题一:这个小例子怎么老是出错?
# file get_url.pl
#–开启语法检查并使用LWP modules
use strict;
use LWP;
#–取得URL
my $url = shift;
#–建立LWP ::UserAgent 与HTTP ::Request 物件,
#–其中Request对象将$url传进去
my $agent=LWP::UserAgent->new();
my $request = HTTP::Request->new(GET=>$url);
#–透过UserAgent的request method将Request送出
my $response= $agent->request($request);
#–检查是否有error发生
$response->is_success or die “$url: “,$response->message,”\n”;      #为什么这句老是提示错误???
#–显示responser的内容
print $response->content;

问题二,提交按钮和图片按钮的点击应该怎么写,只知道输入框里填数据的写法
问题三,因为要换不同的用户名进入,我想问下,在网页一和网页二之间循环操作,这个PERL的语句又应该怎么写,

另:网上找PERL的中文资料很难啊,英语的又看不懂,很郁闷
[解决办法]
一、贴错误。不说具体是什么错误的基本都是在浪费别人的时间。
二、找个可以抓包的软件。比如Firefox的HttpFox,然后自己在网页上操作下,看看发过去的是什么请求。在Perl代码里也照着写吧。如果是有验证码的很麻烦,建议放弃了。
三、循环就写个while啊。
四、英语还是要努力学的。特别是Perl这种国内资料不多的技术。不需要学得多好,大多数技术资料能大概看明白就可以(可以拿着词典软件)。四级都用不着。
[解决办法]
问题二可以通过分析网页代码来解决,简单的方法是用抓包工具抓http包,看提交的内容是什么,如果经过加密的话,则要做相应的处理,
通常是用post来提交数据的,需要加入post方式的处理

问题三比较简单,将二用个函数封装起来,用户名和密码用参数传递进来
这样在外面对用户名密码数组进行循环,每次循环将值传给封装的函数即可
[解决办法]
LWP 包里面提供post 的方法:

 my $url = 'http://www.altavista.com/sites/search/web';

 $response = $browser->post( $url,
   [
     formkey1 => value1, #这里是 TextBox2=888888
     formkey2 => value2, #这里是 TextBox1=chenlin3
     ...
   ],
 );

热点排行