別にPHPでもRubyでもPerlでも出来るのだけれど、折角Pythonを勉強してみたので、Pythonでやってみることにしました。 - "PythonでXPathを使う" -- http://blog.cles.jp/item/2921 - "[Python][XML]libxml2でのXPathの練習" -- http://d.hatena.ne.jp/perezvon/20060817/1155827674 - "lxml" (libxml2を使ったXMLライブラリ) -- http://codespeak.net/lxml/index.html と、探せば沢山出てきますが、今回対象となるドキュメントは、正確なXMLというよりはタグエラーも混ざってそうな昔のHTMLだったりしますので、最終的に残ったのがBeautifulSoupでした。 - "Python で HTML ファイルから情報を取り出すには - 傀儡師の館.Python" -- http://plaza.rakuten.co.jp/kugutsushi/diary/200610220001/ - "Beautiful Soup: We called him Tortoise because he taught us." -- http://www.crummy.com/software/BeautifulSoup/ BeautifulSoup自体はtarボールを解凍するとsetup.pyがありますので、普通に python setup.py install (--record install-files.txt) でOKです。ファイル自体は本体とテストコードで計2つしかありません。今回は最新版(3.1.x)ではなくて一つ前の3.0.7aを使いました。 ローカルファイルに落としてきたfoo.htmlを解析して、タグのsrc属性値をリストで抜き出すのはこんな感じになります。 #code|python|> from BeautifulSoup import BeautifulSoup lines = open("foo.html", "r").readlines() data = ''.join(lines) soup = BeautifulSoup(data) elements = soup.findAll('img') for e in elements: print e['src'] ||<