【问题标题】:Does robobrowser prevent types of HTML element submsisions?robobrowser 是否会阻止 HTML 元素提交类型?
【发布时间】:2017-10-25 04:51:30
【问题描述】:

我已下载 robobrowser 以帮助我登录网页进行网页抓取。

我了解流程,但在访问表单元素时遇到问题。

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

它不接受尝试通过“用户名”访问表单中的索引,但这是我见过的该模块的所有示例中的语法。

【问题讨论】:

  • 试试print form。我猜browser.get_forms() 返回一个列表。答案也使用get_form()
  • get_forms()(带有 s)表示您没有得到一个表单,而是一个表单列表。您必须从列表中提取您需要的表格。

标签: python web-scraping beautifulsoup urllib robobrowser


【解决方案1】:

您可以尝试直接在 url 中使用登录名和密码。方案如下:

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

【讨论】:

    猜你喜欢
    • 2015-02-20
    • 2012-07-22
    • 1970-01-01
    • 2017-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-02
    相关资源
    最近更新 更多