Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html BeautifulSoup4获取输入';价值';用正确的代码抛出错误?_Html_Parsing_Beautifulsoup_Html Parsing - Fatal编程技术网

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})