BeautifulSoup タグの一覧です(1 件)

[Python]BeautifulSoup3からbeautifulsoup4へ変更した

先日、さくらVPSにインストールしてあるfeedparserのバージョンを上げたのですが、ついでにBeautifulSoupのバージョンを上げました。
BeautifulSoup4はBeautifulSoup3とは別モジュールになっているのでバージョンを上げるという言葉は語弊があるのかもしれません。

※これはOSXのPython2.6で実施したものですが実際にはUbuntu10.04 Python2.6で動いてます。
/Users/aoshiman% workon bs4
(bs4)/Users/aoshiman% pip install beautifulsoup4 
Downloading/unpacking beautifulsoup4
Downloading beautifulsoup4-4.1.0.tar.gz (128Kb): 128Kb downloaded
Running setup.py egg_info for package beautifulsoup4
Installing collected packages: beautifulsoup4
Running setup.py install for beautifulsoup4
Successfully installed beautifulsoup4
Cleaning up...
(bs4)/Users/aoshiman% pip freeze
beautifulsoup4==4.1.0
現時点では4.1.0がインストールされました。

とりあえず使ってみます。
(bs4)/Users/aoshiman% python
Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49) 
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import BeautifulSoup
Traceback (most recent call last):
  File "", line 1, in 
ImportError: No module named BeautifulSoup
>>> 
早速エラーです(>_<)

>>> from bs4 import BeautifulSoup
これでOKです。

このブログにアクセスして要素を取得してみます。
>>> from bs4 import BeautifulSoup
>>> import urllib2
>>> soup = BeautifulSoup(urllib2.urlopen('http://blog.aoshiman.org/'))
>>> soup.title
<title>aoshiman.org</title>
>>> soup.title.string
u'aoshiman.org'
>>> soup.title.parent.name
u'head'
>>> 

BeautifulSoup3とBeautifulSoup4の違いはドキュメントにしっかり書いてあります

ドキュメントによると幾つかのメソッド名変更があるとのこと。よく使うfindAllなんかはfind_allへ
>>> soup.find_all('p')
[<p>Hello! I'm aoshiman. Please contact me using these services!</p>]

findAllだと
>>> soup.findAll('p')
[<p>Hello! I'm aoshiman. Please contact me using these services!</p>]
>>> 
あれっ?取れた
ソースコードの該当しそうな箇所みたらfindAllも使えるようです(2012/6/19現在)。
PAGE TOP