关于网络的问题 抓取网页

关于网络的问题 抓取网页

我需要抓取一个网页 这个网页是我向网站提交数据后生成的 就是说我需要登录才能到这个页面 如果我不登录 这个链接是进不了的

我的问题是 我用post方法登录上网页后是否就可以直接用url链接得到网页的源码呢

大家有什么好的方法么  谢谢
LWP
发送cookie做验证
谁能给个简单的登录例子我拿去改一改就好
如果是需要登陆信息的话,那么一般会有cookie
可以这样试试

user-agnet自己随意,我一般用GreenBrowser的

login函数没调,但样子在哪了,如果想判断是否成功也可以,自己加吧

[Copy to clipboard] [ - ]
CODE:
#!/usr/bin/perl
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Cookies;

my $user = 'username';
my $pass = 'password';
my $login_url = 'http://www.google.com/login';

my $url = 'http://www.google.com';
my $ua = LWP::UserAgent->new("keep-alive");
$ua->agent('Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; GreenBrowser)');
#自动保存读取cookie
$ua->cookie_jar(HTTP::Cookies->new('file'=>'cookie.txt', 'autosave'=>1,));

sub login {
        my $response = $ua->post($login_url, ['user'=>$user, 'password'=>$pass]);
}

sub get_page {
        my($url) = @_;
        my $response = $ua->get($url);
        return $response->content();
}

这个方法有参考性 可是有这样的方法么 好像 下载的时候在那里加入这样一个参数呢
何谓有这样的方法么?你指哪个?
至少我在如此的用~~

[Copy to clipboard] [ - ]
CODE:
$ua->post($login_url, ['user'=>$user, 'password'=>$pass]);

这个里面,注意你提交的post内容 会在内部从 ['user'=>$user, 'password'=>$pass] 变为 user=XXXX&password=XXXXX

由于cookie_jar,后续的访问,会自动发送cookie的,也就是处于登陆后的状态了

对于cookie_jar的作用,有错误还请高人指正,我也是才开始用HTTP::Cookies

把那个网页和你的用户名口令告诉我,我试试。


QUOTE:
原帖由 flw 于 2008-8-1 16:09 发表
把那个网页和你的用户名口令告诉我,我试试。

可以url  https://register.ageofconan.com/account
bwscfe 密码 123456
大家一起帮忙弄一下

https的呀,那估计会有些麻烦吧,需要试试看