首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python: RoboBrowser TypeError: NoneType

Python: RoboBrowser TypeError: NoneType
EN

Stack Overflow用户
提问于 2019-07-01 21:02:19
回答 1查看 223关注 0票数 1

我正试图在Tessco.com上为我找到的RoboBrowser和一些教程中的某些项目抓取定价信息。在本教程之后,我有一个错误,海报没有。我不知道需要修改什么来纠正这个问题。

守则如下:

代码语言:javascript
复制
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为userIDpassword

我假设RoboBrowser查找表单的方式有问题,而不返回任何表单。

我的错误消息是:

代码语言:javascript
复制
---------------------------------------------------------------------------
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

我不知道出了什么问题。有什么建议可以指引我走向正确的方向吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-02 00:19:30

表格

以下是他们网站上的一句话:

返回:如果找到BeautifulSoup标记,则没有

这意味着RoboBrowser无法在该网站上找到表单。

它找不到表单,因为https://www.tessco.com/login中的表单是通过javascript加载的。

由于RoboBrowser不执行javascript,所以表单从未加载,因此RoboBrowser无法找到它。

您可能想尝试类似于这样的东西,它实际上运行后台浏览器,而不仅仅是加载HTML。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56842427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档