我正在使用Spyder在Python 3.6中编写我的项目。
我已经下载了robobrowser以帮助我登录网页,因为我不熟悉网页抓取和HTML。
我理解这个过程,但访问表单元素时遇到了问题。
from robobrowser import RoboBrowser
browser = RoboBrowser(history=True)
url1 = "example_url"
username = "example_user"
password = "example_pass"
browser.open(url1)
form = browser.get_forms()
form['username'] = username
似乎只有一种形式,当我尝试将其转换为字符串的示例时,它似乎找到了表单。由于某种原因,它不会在spyder工作空间中显示为变量,除非我转换为字符串。
我查看了html和名称以及用户名条目的ID确实是“用户名”。我收到了错误
form['username'] = username
TypeError: list indices must be integers or slices, not str
它不喜欢我尝试通过'username'访问表单中的索引,但是这是我见过的这个模块的所有示例中的语法。 (这个链接的第一个答案就是我用作模板https://www.quora.com/What-is-the-best-way-to-log-in-to-a-website-using-Python)
答案 0 :(得分:0)
您可以尝试直接在网址中使用登录名和密码。这是方案:
http://USERNAME:PASSWORD@example.com/