作者yujhe (科科哲)
看板Perl
标题Re: [问题] 抓取网页原始档内的资料
时间Mon May 23 00:53:04 2011
我想要从原始档内得到
约有 988,000 项结果<nobr> (搜寻时间:0.06 秒)
以下是我的写法:
$str = "一丁不识";
$info = "
http://www.google.com.tw/search?btnG=1&pws=0&q=";
$url = "$info"."$str";
$mech = WWW::Mechanize->new();
$mech->get($url);
@M=split(/\n/,$mech->content());
binmode(STDOUT, ':encoding(big5)');
#encode("big5", decode("utf8", @M));
if(@M=~/约有 (.*) 项结果/){
$result = $1;
print "$result\n";
}
print write_file "@M";
不过这样子并没有印出result的结果,
是因为@M是utf8编码而不是big5的关系而无法比对吗?
不知道要怎麽改写比较好????
※ 引述《AntaresStar ()》之铭言:
: 刚刚试了一下
: 最主要应该是字元编码的问题
: 我改成
: #!/usr/bin/perl
: use LWP::Simple;
: use WWW::Mechanize;
: $str = "一丁不识";
: $info = "http://www.google.com.tw/search?btnG=1&pws=0&q=";
: $url = "$info"."$str";
: $mech = WWW::Mechanize->new();
: $mech->get($url);
: @M=split(/\n/,$mech->content());
: binmode(STDOUT, ':encoding(big5)');
: print "@M";
: 那个.tw我不知道是不是你要的
: 在台湾打google.com的话会自动导向过去 但写成perl好像就不会自动导向
: 这样搜寻的结果跟编码都会不一样
: ※ 引述《yujhe (科科哲)》之铭言:
: : 各位大大,我想要利用google来抓取我搜寻页面上的特定资料(做个自动搜寻机器人)
: : 我参考前面几篇的文章,不过抓取到的原始档资料好像不是我要的
: : 可以请各位大大帮我看一下原始码哪边出错了吗??
: : #!/usr/bin/perl
: : use LWP::Simple;
: : use WWW::Mechanize;
: : $str = "一丁不识";
: : $info = "http://www.google.com/search?btnG=1&pws=0&q=";
: : $url = "$info"."$str";
: : $mech = WWW::Mechanize->new();
: : $mech->get($url);
: : @M=split(/\n/,$mech->content());
: : print "@M";
: : 我想要抓取Google"一丁不识"这个成语的页面原始档,
: : http://www.google.com/search?btnG=1&pws=0&q=一丁不识
: : 然後在去parse我想要的资料
: : 不过最後印出来的结果好像和我直接在网页上看到的原始档不一样...
: : 恳请各位大大帮忙解决~~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.114.209.100
1F:→ AntaresStar:pl档存成utf8 然後开头加一个use utf8; 05/24 00:10
2F:→ AntaresStar:再来就是@M应该不能直接用=~吧 要一个一个元素去比 05/24 00:11