我正在尝试使用periss of melissadata页面中的模块LWP::UserAgent
通过发布填写表单。问题永远不会完整,字段和请求永远不会完成,显示“正常页面”而没有所需的结果。
代码:
use LWP::UserAgent;
my $nave = LWP::UserAgent->new();
$nave->timeout(5);
$nave->agent("Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1.12) Gecko/20080201Firefox/2.0.0.12");
my $target = "5.135.178.142";
$re = tomar(
"http://www.melissadata.com/lookups/iplocation.asp",
{ 'ipaddress=' => $target, 'submit' => 'Submit' }
);
if ( $re =~ /City<\/td><td align=(.*)><b>(.*)<\/b><\/td>/ ) {
print "Found : $2\n";
}
else {
print $re;
}
sub tomar {
my ($web, $var) = @_;
return $nave->post($web, [%{$var}])->content;
}
有人可以帮忙吗?
答案 0 :(得分:1)
为什么你的刮刀无效的答案是你感兴趣的网站使用Javascript,而LWP :: UserAgent不支持Javascript。
关于如何处理这个问题,你有几个选择。
解析JS,并使用the Javascript package
使用WWW::Mechanize::Firefox和perl将自动化firefox,并使用它来处理JS
这是Perl(TMTOWTDI)找到另一个可以为你解析/处理JS的包。