0

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

我已经分别尝试过这些:

 1. browser.select_form('form[method="post"]')
 2. browser.select_form()
 3. browser.select_form('form[action="/xxx"]')

但它要么选择顶部的搜索表单(无输入),要么返回未找到的错误:

在 select_form 中引发 LinkNotFoundError()mechanicalsoup.utils.LinkNotFoundError

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

<form action="/xxx" method="post" novalidate="novalidate">

编辑:当我浏览网页的 HTML 时,它没有我正在寻找的形式。但是当我检查网页的元素时,它就在那里。我认为这是问题所在。为什么以及如何发生这种情况,我如何使用 MechanicalSoup 来解决问题?

4

1 回答 1

1

我无法添加评论,所以请原谅这个答案。

但是如果不查看有问题的页面,我相信这可能只是在页面加载时通过 javascript 将表单插入 html 的情况,因此不会出现在原始 html 中。

你可能想看看这个

https://pythonprogramming.net/javascript-dynamic-scraping-parsing-beautiful-soup-tutorial/

https://medium.com/ymedialabs-innovation/web-scraping-using-beautiful-soup-and-selenium-for-dynamic-page-2f8ad15efe25

于 2019-08-16T06:56:46.213 回答