2011年8月6日土曜日

PythonでWebのリンクリスト取得

BeautifulSoupを利用してWebサイトのページ内にあるリンクをリストとして取得する方法
  1. import urllib2  
  2. from BeautifulSoup import BeautifulSoup  
  3.   
  4. if __name__ == '__main__':  
  5.     # アクセスするWebサイトのURL  
  6.     url = 'http://www.yahoo.co.jp/'  
  7.   
  8.     # Webサイトへアクセス  
  9.     web = urllib2.urlopen(url)  
  10.     # BeautifulSoupで解析できるよう読み込む  
  11.     html = BeautifulSoup(web)  
  12.   
  13.     # 'a'タグの全ての要素をリストとして抽出する  
  14.     base_linklist = self.getTagList('a')  
  15.     # 抽出した要素リストを1つずつ解析  
  16.     for link in base_linklist:  
  17.         # 'href'がタグ内に含まれない場合は無視する  
  18.         if link.__str__().find('href=') != -1:  
  19.             # リンク名:リンクURLと表示  
  20.             print link.string.__str__() + ':' + link['href']  
リンク名が画像などの場合、link.stringはNoneが得られるため、文字列に変換しておく必要がある

0 件のコメント: