HTMLを解析 Beautiful Soup
2012/2/18
Python2.5.7 Beautiful Soup 3.2.0
Beautiful Soup = pythonで動作するHTMLとXMLのパーサー。
ちなみにHTMLなどから必要な部分を抽出することを スクレイピング と呼ぶらしい。
Beautiful Soup
http://www.crummy.com/software/BeautifulSoup/
{PageIndex}
ウェブ上のHTMLソース取得
import urllib
url = "http://sites.google.com/site/tibracode"
f = urllib.urlopen(url)
html_src = f.read()
特定タグで囲まれた部分の取得
import BeautifulSoup
------
soup = BeautifulSoup.BeautifulSoup(html_src)
title = soup.find('title')
print(title)
# <title>TB-code</title>
findメソッドは最初に見つけたのを抽出する。すべて取得したい場合にはfindAllメソッド
all_a = soup.findAll('a')
特定タグで囲まれた部分の文字だけ取得
soup = BeautifulSoup.BeautifulSoup(html_src)
title = soup.find('title')
print(title.string)
# TB-code
タグ名
title.name
# title
特定タグの、さらに特定の属性がついてるものの取得
soup = BeautifulSoup.BeautifulSoup(html_src)
link = soup.find('link',attrs={'rel':'shortcut icon'})
print(link)
# <link rel="shortcut icon" type="image/x-icon" href="//www.google.com/images/icons/product/sites-16.ico" />
タグについてる属性をリストで所得
soup = BeautifulSoup.BeautifulSoup(html_src)
link = soup.find('link',attrs={'rel':'shortcut icon'})
print(link.attrs)
# [(u'rel', u'shortcut icon'), (u'type', u'image/x-icon'), (u'href', u'//www.google.com/images/icons/product/sites-16.ico')]
タグについてる特定の属性の所得
soup = BeautifulSoup.BeautifulSoup(html_src)
link = soup.find('link',attrs={'rel':'shortcut icon'})
icon_url = dict(link.attrs)['href']
print( icon_url )
# //www.google.com/images/icons/product/sites-16.ico