PythonでHTMLファイルを解析したいのですが、使用しているモジュールはBeautifulSoupです。
関数find_all
はfindAll
と同じです。私は両方を試しましたが、違うと思います:
import urllib, urllib2, cookielib
from BeautifulSoup import *
site = "http://share.dmhy.org/topics/list?keyword=TARI+TARI+team_id%3A407"
rqstr = urllib2.Request(site)
rq = urllib2.urlopen(rqstr)
fchData = rq.read()
soup = BeautifulSoup(fchData)
t = soup.findAll('tr')
誰でも私に違いを教えてもらえますか?
BeautifulSoupバージョン4では、方法はまったく同じです。大文字と小文字が混在するバージョン(findAll
、findAllNext
、nextSibling
など)はすべて Pythonスタイルガイド に準拠するように名前が変更されていますが、 oldの名前は、移植を容易にするために引き続き使用できます。完全なリストは メソッド名 を参照してください。
新しいコードでは、小文字のバージョンを使用する必要があるため、_find_all
_などです。
ただし、あなたの例では、BeautifulSoupバージョン3を使用しています(2012年3月に廃止、しないでください助けることができればそれを使用してください)、findAll()
のみが利用可能です。不明な属性名(BeautifulSoup 4でのみ使用できる_.find_all
_など)は、その名前でタグを検索する場合と同様に扱われます。ドキュメントに_<find_all>
_タグがないため、None
が返されます。
beautifulSoupのソースコードから:
http://Bazaar.launchpad.net/~leonardr/beautifulsoup/bs4/view/head:/bs4/element.py#L126
def find_all(self, name=None, attrs={}, recursive=True, text=None,
limit=None, **kwargs):
# ...
# ...
findAll = find_all # BS3
findChildren = find_all # BS2