2017-06-06 5 views
0

Im Versuch, den "Wert" von Variablen (__VIEWSTATEGENERATOR) zu analysieren, hier ist der HTML-Code ::Ausgabe Parsen Variable aus HTML mit BS4

<div> 
<input id="__VIEWSTATEGENERATOR" name="__VIEWSTATEGENERATOR" type="hidden" value="1434571F"/> 
</div> 

Hier ist der Code, den ich versucht bin zu tun, dass mit ::

viewstategenerator = soup.findAll("input", {"type": "hidden", "name": "__VIEWSTATEGENERATOR"}) 

ich dann ausführen :: Druck (viewstategenerator), und ich erhalte die folgende Zeichenfolge für meine Variable:

>>> print(viewstategenerator) 
[<input id="__VIEWSTATEGENERATOR" name="__VIEWSTATEGENERATOR" type="hidden" value="1434571F"/>] 

Ich hatte erwartet, nur den Wert von "1434571F" zu nehmen, nicht sicher, warum das so ist ... Jede Hilfe würde sehr geschätzt werden !!

Antwort

1

Es sieht so aus, als ob Sie in der Nähe sind, aber nur ein bisschen verwirrt über die BeautifulSoup API.

soup.findAll gibt eine Liste aller DOM-Elemente zurück, die der von Ihnen angegebenen Abfrage entsprechen. Da nur ein Element auf der Seite mit Ihrer Abfrage übereinstimmen kann, sollten Sie stattdessen soup.find verwenden. Um den Wert des value Attributs Ihres input Elements zu erhalten, verwenden Sie ['value'].

from bs4 import BeautifulSoup as Soup 

html = """ 
<div> 
<input id="__VIEWSTATEGENERATOR" name="__VIEWSTATEGENERATOR" type="hidden" value="1434571F"/> 
</div> 
""" 

soup = Soup(html, 'lxml') # Use whatever parser you're already using. 


viewstategenerator = soup.find("input", {"type": "hidden", "name": "__VIEWSTATEGENERATOR"}) 
print(viewstategenerator['value']) 
# Prints 1434571F