使用以下示例,如何利用 BeautifulSoup 查找(或选择)第二个 INPUT 元素。
<form>
<input id="a:b:c" ...>
<input id="a:b" ...>
</form>
我尝试使用 .find('input', id=re.compile('b')) 这当然给了我第一个元素。
我正在寻找一种直接到达第二个的方法,而不使用 FindAll 和迭代。
有没有办法改进正则表达式?
还有其他想法吗?
最佳答案
根据BeautifulSoup documentation ,如果您确切知道要查找的 ID,则可以将其作为字符串而不是正则表达式传递:
soup.findall('input', id='a:b')
否则,如果您总是在寻找与您的正则表达式匹配的第二个输入
,文档建议soup.findall
为您提供一个列表而不是生成器。这意味着您不需要迭代,因为您可以直接询问第二个结果:
soup.findall('input', id=re.compile('b'))[1]
关于Python BeautifulSoup 使用 re.compile 查找字符串结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11070955/