上一篇網路蜘蛛Spider和大家提到要寫一個搜括email的程式,
這邊就來實作一下吧,
當然還是用簡單易用的perl來寫:)

想法
程式的想法是這樣,
一、讀入一個帳號
二、連結到該帳號的profile頁面
三、抓下這個頁面
四、比對這個頁面是否有email帳號,有email帳號的話將帳號秀出來

準備資料
首先我們先準備一些pixnet的帳號,
當然這些帳號也可以用程式來找,
但這邊我就不示範怎麼抓了,
這些帳號我直接寫在程式裡面。

程式碼
use WWW::Mechanize;
use HTML::TreeBuilder;

my $mech=WWW::Mechanize->new();
while(<DATA>){
  chomp;
  my $id=$_;
  my $url='http://www.pixnet.net/profile/'.$id;
  my $res= $mech->get($url);
  my $root=HTML::TreeBuilder->new_from_content($res->content);
  my @links=$root->look_down(_tag=>'td');
  for($j=0; $j<=$#links; $j++){
    if($links[$j]->as_trimmed_text =~ /\@/){
      print $links[$j]->as_trimmed_text, "\n";
    }
  }
  $root->delete;
}
__DATA__
jck11

解說
這個程式應該蠻簡單的,
用到了WWW::Mechanize和HTML::TreeBuilder兩個模組,
在比對email帳號時只比對了@符號,
可能不是很精確,
不過下一篇文章我會講介紹一個判斷email是否正確的模組:)
__DATA__下面可以輸入你想找的pixnet帳號,
這個示範只輸入我的帳號而以,
當然這個部份可以改成讀入一個外部檔案。
arrow
arrow
    全站熱搜

    jck11 發表在 痞客邦 留言(2) 人氣()