我试图解析变量的“值”(__VIEWSTATEGENERATOR),这里是HTML代码::
<div>
<input id="__VIEWSTATEGENERATOR" name="__VIEWSTATEGENERATOR" type="hidden" value="1434571F"/>
</div>
这是我试图用::
做的代码viewstategenerator = soup.findAll("input", {"type": "hidden", "name": "__VIEWSTATEGENERATOR"})
然后我执行:: print(viewstategenerator),我的变量得到以下字符串:
>>> print(viewstategenerator)
[<input id="__VIEWSTATEGENERATOR" name="__VIEWSTATEGENERATOR" type="hidden" value="1434571F"/>]
我期待只抓住“1434571F”的价值,不知道为什么会这样......任何帮助都会受到高度赞赏!
答案 0 :(得分:1)
看起来你很接近但只是对BeautifulSoup API感到困惑。
soup.findAll
返回与您提供的查询匹配的所有DOM元素的列表。看到页面上只有一个元素可以与您的查询匹配,您应该使用soup.find
代替。要获取value
元素的input
属性的值,请使用['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