使用 Python 发出 HTTP 请求时保存 cookie 时出现问题

Problems saving cookies when making HTTP requests using Python

我正在尝试使用 python 制作网络蜘蛛,但是当我尝试登录网站时遇到了一些问题 Pixiv.My 代码如下:

import sys
import urllib
import urllib2
import cookielib

url="https://www.secure.pixiv.net/login.php"

cookiename='123.txt'
cookie = cookielib.MozillaCookieJar(cookiename)
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
cookie.save()

values={'model':'login',
        'return_to':'/',
        'pixiv_id':'username',
        'pass':'password',
        'skip':'1'}

headers = { 'User-Agent' : 'User-Agent' }
data=urllib.urlencode(values)
req=urllib2.Request(url,data)
response=urllib2.urlopen(req)
the_page=response.read()
cookie.save()

为了确保它有效,我使用 cookielib 将 cookie 保存为 txt file.I 运行 代码并得到一个 "cookie.txt",但是当我打开文件时我发现它是rmpty,换句话说,我的代码不起作用。 不知道怎么回事

问题是您没有使用您创建的附加了 cookiejar 的 opener 来发出请求。 urllib2.urlopen 无法知道您要使用该开启器来启动请求。

您可以使用开瓶器的 open method directly or, if you want to use this by default for the rest of your application, you can install it as the default opener for all requests made with urllib2 using urllib2.install_opener。所以试一试,看看它是否有效。