J'essaie d'extraire le contenu d'un seul attribut "value" dans une balise "input" spécifique sur une page Web. J'utilise le code suivant:Extraction d'une valeur d'attribut avec beautifulsoup
import urllib
f = urllib.urlopen("http://58.68.130.147")
s = f.read()
f.close()
from BeautifulSoup import BeautifulStoneSoup
soup = BeautifulStoneSoup(s)
inputTag = soup.findAll(attrs={"name" : "stainfo"})
output = inputTag['value']
print str(output)
Je reçois TypeError: indices de la liste doivent être des nombres entiers, pas str
même si de la documentation beautifulsoup je comprends que les chaînes ne devraient pas être un problème ici ... mais Je n'ai pas de spécialiste et j'ai peut-être mal compris.
Toute suggestion est grandement appréciée! Merci d'avance.
Great stuff! Merci. Maintenant, j'ai une question à propos de l'analyse de la sortie que j'ai un long tas de caractères non-ASCII, mais je vais poser cette question dans une autre question. – Barnabe
ne devrait pas l'accès à la «valeur» selon http://stackoverflow.com/questions/2616659/extracting-value-in-beautifulsoup. Qu'est-ce qui fait que le code ci-dessus fonctionne dans ce cas? Je pensais que vous deviez accéder à la valeur en faisant 'output = inputTag [0].contents' – Seth
@Seth - non, parce qu'il cherche la valeur 'attrib' de tag d'entrée, et .contents retourne le texte encapsulé par l'étiquette ( je suis .contents) - (juste répondre maintenant parce que je devais doubler vérifier ce qui se passait, trouver quelqu'un d'autre peut en bénéficier) –