如何按名称属性搜索?

时间:2014-06-26 00:20:45

标签: beautifulsoup

我正在尝试查找输入元素<input id="telephone" name="telephone">。我试过了soup.find('input', name='telephone')并没有找到它。但是soup.find('input', id='telephone')工作正常。我认为问题在于'name'有两个含义,标签的名称和name属性。那么,我如何通过name属性进行搜索?


显然,在我的例子中,我可以通过id属性进行搜索,但在我的实际困境中并不存在。

2 个答案:

答案 0 :(得分:1)

您还可以使用attrs参数。例如:

soup.find('input', attrs={'name': 'telephone'})

或者,更简单地说就是你的情况:

soup.find('input', {'name': 'telephone'})

(见https://www.crummy.com/software/BeautifulSoup/bs4/doc/#the-keyword-arguments

您不必传递代码名称('input'在您的情况下) - 您只能按属性搜索 - 但我已将其包含在内以匹配您问题的详细信息。

希望这有用。

答案 1 :(得分:0)

我不确定你是否写过。

soup.find('input', name='telephone');

你会尝试使用它吗?

soup.find('input[name="telephone"]');

希望它有效。