Python 当页面上有多个表单时,如何使用CSS选择器选择表单?

Python 当页面上有多个表单时,如何使用CSS选择器选择表单?,python,forms,beautifulsoup,mechanize-python,mechanicalsoup,Python,Forms,Beautifulsoup,Mechanize Python,Mechanicalsoup,我试图填写网页上的特定表单,但我使用的CSS选择器返回错误 我已经分别尝试了这些: 1.浏览器。选择“表单[method=post]” 2.browser.select\u表单 3.浏览器。选择_form'form[action=/xxx]' 但它要么选择顶部的搜索表单no input,要么返回not found错误: 在select_表单中,raise LinkNotFoundError mechanicalsoup.utils.LinkNotFoundError 我希望它选择正确的表单,因为

我试图填写网页上的特定表单,但我使用的CSS选择器返回错误

我已经分别尝试了这些:

1.浏览器。选择“表单[method=post]” 2.browser.select\u表单 3.浏览器。选择_form'form[action=/xxx]' 但它要么选择顶部的搜索表单no input,要么返回not found错误:

在select_表单中,raise LinkNotFoundError mechanicalsoup.utils.LinkNotFoundError

我希望它选择正确的表单,因为这是表单的CSS:

<form action="/xxx" method="post" novalidate="novalidate">
编辑:
当我浏览网页的HTML时,它没有我想要的表单。但当我检查网页的元素时,它就在那里。我想这就是问题所在。发生这种情况的原因和方式,以及我如何使用MechanicalSoup解决问题?

我无法添加评论,请原谅我的回答

但是,如果不查看所讨论的页面,我相信这可能只是一种情况,即表单通过页面加载时的javascript插入html,因此不会显示在原始html中

你可能想调查一下


我想应该是这样的。在用javascript构建表单之后,有没有办法在Python中访问表单?看起来这可能是mechanicalsoup的否定。如果网站依赖JavaScript,那么您可能需要一个成熟的浏览器。硒可能对你有帮助,但它是一种比机械组重得多的解决方案。是的,不幸的是,如果没有一个模拟的浏览器呈现页面,这似乎是不可能做到的。也许有人在处理动态呈现页面方面有更丰富的经验,他可能会进一步指导您。您做得很好:除非您手动重新构建表单,否则MechanicalSoup不会有帮助,因为它不会解释JS代码。