1

**经过短暂的思考后编辑,我只是​​想我根本不需要使用 mechanize,但我不知道我应该使用哪个 Python 库来与 cookie 和会话数据进行交互,任何人都可以提示我 ?**

我想执行一个简单的登录并使用某些站点的凭据(以及 cookie、会话数据)。

我使用 mechanize 来执行基本的表单使用,因为表单是使用 Javascript 构建的

import cookielib
br = mechanize.Browser()
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)
br.set_handle_equiv(True)
br.set_handle_gzip(True)
br.set_handle_redirect(True)
br.set_handle_referer(True)
br.set_handle_robots(False)

br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)


br.set_debug_http(True)
br.set_debug_redirects(True)
br.set_debug_responses(True)

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')]

parameters = { 'username' : 'w00t',
               'password' : 't00w'
            }
data = urllib.urlencode(parameters)
resp = br.open(url,data)

但是由于某种原因,我似乎无法从服务器获得任何积极响应,我没有看到任何迹象(用于重定向到所需页面),也不知道一旦我拥有 cookie 和会话后如何继续继续使用这些 cookie 和会话数据

我想知道是否有人可以提示我或让我参考正确的文档,因为我发现的似乎并不能解决我的问题

4

1 回答 1

1

我以前在 Python 中使用过 Requests 库 (http://docs.python-requests.org/en/latest/index.html) 来处理这类事情。我发现它非常直接并且有很好的文档。这是一个在请求中包含 cookie 的示例:

>>> url = 'http://httpbin.org/cookies'
>>> cookies = dict(cookies_are='working')

>>> r = requests.get(url, cookies=cookies)
>>> r.text
'{"cookies": {"cookies_are": "working"}}'

我使用过 Mechanize,如果我记得,它会为您跟踪 cookie。相反,该库将要求您根据请求不断地重新发布 cookie。

于 2012-06-23T19:07:08.653 回答