我正试图在Tessco.com上为我找到的RoboBrowser和一些教程中的某些项目抓取定价信息。在本教程之后,我有一个错误,海报没有。我不知道需要修改什么来纠正这个问题。
守则如下:
import re
import config
from robobrowser import RoboBrowser
br = RoboBrowser(history=True)
br.open("https://www.tessco.com/login")
form = br.get_form()
form['userID'] = config.TESSCO_USERNAME
form['password'] = config.TESSCO_PASSWORD
br.submit_form(form)查看Google中的检查器,我看到需要用户输入的部分的ID为userID和password。
我假设RoboBrowser查找表单的方式有问题,而不返回任何表单。
我的错误消息是:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-58-6c3d8fcb718d> in <module>
1 form = br.get_form()
----> 2 form['userID'] = config.TESSCO_USERNAME
3 form['password'] = config.TESSCO_PASSWORD
4 br.submit_form(form)
TypeError: 'NoneType' object does not support item assignment我不知道出了什么问题。有什么建议可以指引我走向正确的方向吗?
发布于 2019-07-02 00:19:30
以下是他们网站上的一句话:
返回:如果找到BeautifulSoup标记,则没有
这意味着RoboBrowser无法在该网站上找到表单。
它找不到表单,因为https://www.tessco.com/login中的表单是通过javascript加载的。
由于RoboBrowser不执行javascript,所以表单从未加载,因此RoboBrowser无法找到它。
您可能想尝试类似于硒这样的东西,它实际上运行后台浏览器,而不仅仅是加载HTML。
https://stackoverflow.com/questions/56842427
复制相似问题