python - 使用 Python mechanize 登录网站?

标签 python twitter authentication mechanize

我正在使用 mechanize ( and following this tutorial ) 尝试登录网站。我想尝试在 Twitter 上对其进行测试,所以这是我想出的脚本:

import mechanize
import cookielib

username = 'user'   # your username/email
password = 'pass'   # your password

br = mechanize.Browser()

# set cookies
cookies = cookielib.LWPCookieJar()
br.set_cookiejar(cookies)

# browser settings (used to emulate a browser)
br.set_handle_equiv(True)
br.set_handle_redirect(True)
br.set_handle_referer(True)
br.set_handle_robots(False)
br.set_debug_http(False)
br.set_debug_responses(False)
br.set_debug_redirects(False)
br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time = 1)
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]

br.open('http://twitter.com/') # open twitter

br.select_form(nr=1) # select the form

br['session[username_or_email]'] = username
br['session[password]'] = password
br.submit() # submit the login data
print(br.response().read) # print the response

这是我运行脚本时的 Python 输出:

$ python twitterLoginTest.py 
<bound method response_seek_wrapper.read of <response_seek_wrapper at 0x8feaeac whose wrapped object = <closeable_response at 0x8feeaac whose fp = <socket._fileobject object at 0x8feb42c>>>>

(文件名为twitterLoginTest.py)

现在,我不太确定该响应的含义,但它似乎并不正确。

这是我的问题

1) 是否有更好的使用脚本登录网站的方法(不仅仅是 twitter,任何网站都可以,以及可以修改以在任何网站上登录的方法)?

2) 我的脚本哪里出错了?

3) 如何解决问题,登录?

我假设问题出在br.select_form(nr=1)(这是我选择表单的地方),但我不知道该放什么(所以我认为这将是第二种形式),因为 Twitter 没有命名他们的形式。

最佳答案

我认为最后一行应该是:

print(br.response().read()) # print the response

注意 read 之后的 ()。您目前只是打印 read 方法本身,而不是调用 read 方法的结果。

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

相关文章:

javascript - 如何顺序处理来自 API 的异步结果?

python - 使用 python 在 Elasticsearch 中进行 API key 身份验证

python - Apache Hive 在使用 Python UDF 时出错

python - 使用OpenCV与Matlab评估校准结果

python - 在日志格式化程序中提取日志记录调用中的额外字段

python - python 中浮点精度的损失

回调完成后Android完成 Activity

asp.net - 如何在我的主页绑定(bind)Twitter?

authentication - Kubernetes 中的服务帐户 token 管理

php - Laravel auth 在登录前检查列