beautifulsoup findAll find_all
Je voudrais analyser un fichier html avec le langage Python, et le module que j'ai utilisé est beautifulsoup.
Après je l'ai utilisé, quelque chose d'étrange s'est passé.Il est dit que la fonction "find_all" est
même comme "findAll", mais j'ai essayé les deux d'entre eux. Mais c'est différent.
Quelqu'un peut me dire la différence?
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')
print t
la version de beautifulsoup utilisez-vous? Si vous êtes supposé utiliser BS4, puis à l'importation devrait être
Quelle est la différence? Je veux dire, vous avez dit que vous utilisé les deux et vous avez vu une différence. Pourriez-vous poster une sortie qui montre les différences de comportement? Ou demandez-vous pourquoi il y a deux méthodes qui fait la même chose? Dans ce cas, Martijn Pieters est correct.
find_all : il ne trouve pas le module findAll : il a trouvé plusieurs parties de code html.
from bs4 import BeautifulSoup
. Voir crummy.com/software/BeautifulSoup/bs4/doc/#porting-code-to-bs4Quelle est la différence? Je veux dire, vous avez dit que vous utilisé les deux et vous avez vu une différence. Pourriez-vous poster une sortie qui montre les différences de comportement? Ou demandez-vous pourquoi il y a deux méthodes qui fait la même chose? Dans ce cas, Martijn Pieters est correct.
find_all : il ne trouve pas le module findAll : il a trouvé plusieurs parties de code html.
OriginalL'auteur Oberon | 2012-09-09
Vous devez vous connecter pour publier un commentaire.
Dans BeautifulSoup la version 4, les méthodes sont exactement les mêmes; les majuscules versions (
findAll
,findAllNext
,nextSibling
, etc.) ont tous été renommé pour être conformes à la Python guide de style, mais le vieux noms sont encore disponibles pour effectuer le portage plus facile. Voir Les Noms De Méthode pour une liste complète.Dans le nouveau code, vous devez utiliser les versions minuscule, donc
find_all
, etc.Dans votre exemple, toutefois, vous utilisez la BeautifulSoup version 3 (abandonnée depuis Mars 2012, ne pas l'utiliser si vous pouvez vous le permettre), où seulement
findAll()
est disponible. Inconnu noms d'attribut (comme.find_all
, qui est seulement disponible dans BeautifulSoup 4) sont traitées comme si vous êtes à la recherche d'une balise de ce nom. Il n'y a pas de<find_all>
balise dans votre document, afin deNone
est retourné pour que.OriginalL'auteur Martijn Pieters
à partir du code source de BeautifulSoup:
http://bazaar.launchpad.net/~leonardr/beautifulsoup/bs4/view/tête:/bs4/élément.py#L1260
OriginalL'auteur kmonsoor