请教各位,一个关于网页抓取的问题。

请教各位,一个关于网页抓取的问题。

请教各位,一个关于网页抓取的问题。
请教各位,一个关于网页抓取的问题。

本来我使用如下代码抓页面的,但是最近发现不能成功抓取了,我观察了一下,感觉是需要有引用页面才能正确抓取,请教各位,在perl中怎么实现这种模拟引用页面的效果哪?


sub getHTMLpage {
my $url = shift;
my $uagent = LWP::UserAgent->new;
$uagent->cookie_jar({});
$uagent->agent('Mozilla/4.0 (compatible; MSIE 6.0; Windws NT 5.1)');
my $request= HTTP::Request->new(GET=>$url);
$request->content_type('applicationn/x-www-form-urlencoded');
$request->content();
my $res = $uagent->request($request);
return $res->as_string();
}
HTTP::Request 对象有一个.
HTTP::Request 对象有一个 header 方法,可以通过该方法来设置请求头(也可以在 new 方法中设置请求头)
引用的话只要通过 header 方法加上 Referer 项即可
详见 [url=http://84.45.68.23/~gaas/libwww-perl-5.805/lib/HTTP/Request.pm]HTTP::Request[/url]及[url=http://84.45.68.23/~gaas/libwww-perl-5.805/lib/HTTP/Headers.pm]HTTP::Headers[/url]
太谢谢了,我去试试看。.
怎么将ie的cookie转成perl.
怎么将ie的cookie转成perl格式的哪?


我现在用如下代码,发现仅仅启用cookie还是不能成功抓取,怎么将ie的cookie转成perl的哪?

ie导出的类似这个格式:
s.aaaa.cn TRUE / FALSE 1166333951 s2.identify 62a263sd7f7asdf13

那么
use HTTP::Cookies;
my $m_cookie_jar = HTTP::Cookies->new(
file => "lwp_cookies.txt",
autosave => 1,
);
中这个"lwp_cookies.txt"文件应该写成什么格式哪?

我用和IE一样的格式,报错了“lwp_cookies.txt does not seem to contain cookies at D:/dev_ws/Perl/site/lib/HTTP/Cookies.pm line 426, <FILE> line 1.”



$uagent = LWP::UserAgent->new;

if ( defined $m_cookie_jar )
{
$uagent->cookie_jar($m_cookie_jar);
}
else
{
$uagent->cookie_jar({});
}
$uagent->agent('Mozilla/4.0 (compatible; MSIE 6.0; Windws NT 5.1)');

if ( lc("$method") ne "post" )
{
$res = $uagent->request(new HTTP::Request(GET => $url, new HTTP::Headers 'Referer'=>$Referer),);
}
else
{
$res = $uagent->request(new HTTP::Request(POST => $url, new HTTP::Headers 'Referer'=>$Referer),);
}
用lwp登录一下,再看你的l.
用lwp登录一下,再看你的lwp_cookies.txt,就知道了。
怎么用lwp登陆? 我要抓取.
怎么用lwp登陆? 我要抓取的网站是需要登陆的,还有验证吗。所有我每次是正常登陆后,复制其链接,再用perl代码抓里面的页面。
$response = $useragent-&.
$response = $useragent->post( $url,
[
formkey1 => value1,
formkey2 => value2,
...
],
);
登录其实就是填写表单。
我尝试的登陆,但是失败了.
我尝试的登陆,但是失败了,cookie文件中还是空的,还是看不到格式。唉
谁能给点思路吗?.
直接用socket发送最原始的.
直接用socket发送最原始的http请求包。。