2017-06-06 58 views
0

我試着來分析變量(__VIEWSTATEGENERATOR)的「價值」,這裏的HTML代碼::問題從HTML解析變量,BS4

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

這裏就是我試圖做的代碼與::

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

我然後執行::打印(viewstategenerator),併爲我的變量以下字符串:

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

我期待抓住「1434571F」的價值,不知道爲什麼這是...任何幫助將不勝感激!

回答

1

看起來你很接近但對BeautifulSoup API感到困惑。

soup.findAll返回一個列表所有與您給出的查詢相匹配的DOM元素。由於只有頁面上的一個元素可以與您的查詢匹配,因此您應該使用soup.find。要獲得input元素的value屬性的值,請使用['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