[Python] ウェブサイトから必要なデータだけ取得する「スクレイピング」を BeautifulSoup でやる方法
Python でウェブページから必要なデータだけ取得する方法をご紹介します。
この ”ウェブサイトから必要なデータだけ取得する” ことを「スクレイピング」と呼びます。
「スクレイピング」 = ウェブサイトのデータを必要な部分だけ抽出して利用すること
を頭に入れておけば、あとは「Python スクレイピング」で検索すればたくさん参考になる記事が出てきます。
早速、下記のサイトを参考にしてやってみました。
BeautifulSoup という Python のライブラリを使えば簡単にできるみたいですね。すごい。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import urllib2
from BeautifulSoup import BeautifulSoup
url = "http://www.yahoo.co.jp"
htmlfp = urllib2.urlopen(url)
html = htmlfp.read().decode("utf-8", "replace")
htmlfp.close()
soup = BeautifulSoup(html)
for link in soup.findAll("a"):
print link
このプログラムでは、Yahoo! JAPAN (http://www.yahoo.co.jp/) から <a href=“http://www.hogehoge.com/">〜〜〜</a> などのリンクだけを取得して print しています。
実行結果は以下の通りです。(一部抜粋)
ヘルプ
天気、交通情報ほか、連休お役立ち情報
「あいのり2」バングラデシュ編ついに完結
東日本大震災 チャリティーオークション
ショッピング
オークション
旅行、出張
ニュース
天気
スポーツ
ファイナンス
テレビ
地図
路線
グルメ
.
. (途中省略)
.
会社概要
投資家情報
社会的責任
企業行動憲章
広告掲載について
採用情報
利用規約
セキュリティーの考え方
プライバシーポリシー
免責事項
以上です。