python BeautifulSoup 查找特定表单的所有输入

use*_*022 5 html python forms beautifulsoup html-parsing

我正在尝试BeautifulSoup仅用于提取特定表单的输入字段。

使用以下方法提取表单:

soup.find('form')
Run Code Online (Sandbox Code Playgroud)

现在我想提取所有属于该表单的子项的输入字段。

我怎样才能用 BS 做到这一点?

ale*_*cxe 8

如评论中所述,findfind_all()特定于上下文的搜索:

form = soup.find('form')
inputs = form.find_all('input')
Run Code Online (Sandbox Code Playgroud)

如果您input只想要直接元素,请添加recursive=False

form.find_all('input', recursive=False)
Run Code Online (Sandbox Code Playgroud)

或者,使用CSS 选择器

soup.select("form input")
Run Code Online (Sandbox Code Playgroud)

并且,input仅获取直接子元素:

soup.select("form > input")
Run Code Online (Sandbox Code Playgroud)

  • 请注意,您可能关心的表单元素不仅仅是“input”,还包括“button”、“select”和“textarea”。https://www.w3.org/TR/html52/sec-forms.html (2认同)