2011年8月6日土曜日

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

BeautifulSoupを利用してWebサイトのページ内にあるリンクをリストとして取得する方法
import urllib2
from BeautifulSoup import BeautifulSoup

if __name__ == '__main__':
    # アクセスするWebサイトのURL
    url = 'http://www.yahoo.co.jp/'

    # Webサイトへアクセス
    web = urllib2.urlopen(url)
    # BeautifulSoupで解析できるよう読み込む
    html = BeautifulSoup(web)

    # 'a'タグの全ての要素をリストとして抽出する
    base_linklist = self.getTagList('a')
    # 抽出した要素リストを1つずつ解析
    for link in base_linklist:
        # 'href'がタグ内に含まれない場合は無視する
        if link.__str__().find('href=') != -1:
            # リンク名:リンクURLと表示
            print link.string.__str__() + ':' + link['href']
リンク名が画像などの場合、link.stringはNoneが得られるため、文字列に変換しておく必要がある

0 件のコメント: