python - 使用 Python 和 Mechanize 登录网站

标签 python web-scraping mechanize

我正在尝试登录portfolio123.com使用 Mechanize 。由于某种原因,我没有收到 LoginPassword 字段。

这是到目前为止的代码:

import mechanize

br = mechanize.Browser()
br.select_form(nr=0)
br['LoginUsername'] = user_name 
br['LoginPassword'] = password # This line does not work yet. 

最后一行不起作用。未找到该控件。我们可以通过运行以下代码来确认这一点:

br.form = list(br.forms())[0]
for control in br.form.controls:
    print "type=%s, name=%s value=%s" % (control.type, control.name, br[control.name])

返回:

type=text, name=LoginUsername value=xxxxx
type=submit, name=Login value=Login
type=hidden, name=url value=index.jsp

但是当我在浏览器中打开网址时,密码字段就在中。那么我该如何实现呢?

最佳答案

尚不清楚为什么 Mechanize 看不到 LoginPassword 字段。我尝试了多种方法:设置一个User-Agent,尝试过 prettifying the response with BeautifulSoup思考 HTML 解析问题,尝试动态修改密码输入属性等。

作为解决方法,robobrowser可以毫无问题地处理登录表单:

import robobrowser

url = "https://www.portfolio123.com/login.jsp"
browser = robobrowser.RoboBrowser()
browser.open(url)

form = browser.get_form()
form['LoginUsername'] = 'Username'
form['LoginPassword'] = 'Password'
browser.submit_form(form)

关于python - 使用 Python 和 Mechanize 登录网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30655568/

相关文章:

html - MSXML2.XMLHTTP 能否检索给定网页的所有 HTML 数据?

python - 如何使用 Mechanize python

ruby - Mechanize 主机名匹配

javascript - Python Mechanize - 选择一个值并提交不起作用

python - 如何从枢轴操作合并回数据框?

python - 创建 Pyomo 约束的性能

Python 和 Scrapy 引用项目的属性

python - 有没有办法在 Apache Superset 中创建只读仪表板

python - 如何以编程方式将 Excel 电子表格 (.xls) 转换为 shapefile?

python - 将多个网页抓取到单个 csv 中