Re: [問題] 抓取網頁原始檔內的資料

看板Perl作者 (科科哲)時間14年前 (2011/05/23 00:53), 編輯推噓0(002)
留言2則, 1人參與, 最新討論串3/3 (看更多)
我想要從原始檔內得到 約有 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

05/24 00:10, , 1F
pl檔存成utf8 然後開頭加一個use utf8;
05/24 00:10, 1F

05/24 00:11, , 2F
再來就是@M應該不能直接用=~吧 要一個一個元素去比
05/24 00:11, 2F
文章代碼(AID): #1DsJzptl (Perl)
文章代碼(AID): #1DsJzptl (Perl)