作者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
→ AntaresStar:pl檔存成utf8 然後開頭加一個use utf8; 05/24 00:10
→ AntaresStar:再來就是@M應該不能直接用=~吧 要一個一個元素去比 05/24 00:11