Je voudrais analyser un fichier HTML avec Python et que le module que j'utilise est magnifique.
On dit que la fonction find_all
est identique à findAll
. J'ai essayé les deux, mais je crois qu'ils sont différents:
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')
Quelqu'un peut-il me dire la différence?
Dans la version 4 version 4, les méthodes sont exactement les mêmes; Les versions mixtes (findAll
, findAllNext
, nextSibling
, etc.) ont tous été renommés pour se conformer au Guide de style Python , mais Le Old Les noms sont toujours disponibles pour faciliter le portage. Voir noms de méthodes pour une liste complète.
Dans le nouveau code, vous devez utiliser les versions minuscules, donc find_all
, Etc.
Dans votre exemple, vous utilisez BEAUMESUP Version 3 (Discontinue depuis mars 2012, non Utilisez-le si vous pouvez l'aider), où seulement findAll()
est disponible. Les noms d'attributs inconnus (tels que .find_all
, Qui est disponible uniquement dans Beautifulsoup 4) sont traités comme si vous recherchez une balise par ce nom. Il n'y a pas de balise <find_all>
Dans votre document, alors None
est renvoyé pour cela.
du code source de belle-passoup:
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