Python登录网页问题

时间:2017-10-25 04:51:30

标签: python web-scraping beautifulsoup urllib robobrowser

我正在使用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

1 个答案:

答案 0 :(得分:0)

您可以尝试直接在网址中使用登录名和密码。这是方案:

http://USERNAME:PASSWORD@example.com/