Html BeautifulSoup4获取输入';价值';用正确的代码抛出错误?
我复制了这段代码以获取输入值,它抛出以下错误:Html BeautifulSoup4获取输入';价值';用正确的代码抛出错误?,html,parsing,beautifulsoup,html-parsing,Html,Parsing,Beautifulsoup,Html Parsing,我复制了这段代码以获取输入值,它抛出以下错误: print [(element['name'], element['value']) for element in soup.find_all('input')] 如果我只提供名称,它就可以工作。我尝试了其他几个版本,但它仍然给我相同的值键错误。它似乎不返回值 无论哪种方式,如果我搜索所有“输入”(一个结果的示例),它将完全返回以下内容: 所以它肯定能找到“输入”,但不能得到值 你知道为什么会发生这种情况吗?可能有input元素没有设置val
print [(element['name'], element['value']) for element in soup.find_all('input')]
如果我只提供名称
,它就可以工作。我尝试了其他几个版本,但它仍然给我相同的值
键错误。它似乎不返回值
无论哪种方式,如果我搜索所有“输入”(一个结果的示例),它将完全返回以下内容:
所以它肯定能找到“输入”,但不能得到值
你知道为什么会发生这种情况吗?可能有
input
元素没有设置value
属性
您可以让find_all()
知道您只需要设置了value
和name
属性的输入:
<input id="Token" name="data[Token][key]" type="hidden" value="152a1f397548bfecbb09581670734bf0403bdf63"/>
难以置信的这就是问题所在!似乎find_all不喜欢没有值的输入!我只是通过一个for循环用一个“except”来解决它,但这要干净得多。谢谢大家!@Benjamin是的,当然,您可以通过捕获异常来解决它,但是我同意避免在没有值的情况下迭代输入更干净。谢谢
<input id="Token" name="data[Token][key]" type="hidden" value="152a1f397548bfecbb09581670734bf0403bdf63"/>
soup.find_all("input", {"name": True, "value": True})