Python - urllib2 & cookielib

标签 python urllib2 cookielib

我正在尝试打开以下网站并检索初始 cookie 并将其用于第二个 url-open 但如果您运行以下代码,它会输出 2 个不同的 cookie。如何将初始 cookie 用于第二个 url-open?

import cookielib, urllib2

cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))

home = opener.open('https://www.idcourts.us/repository/start.do')
print cj

search = opener.open('https://www.idcourts.us/repository/partySearch.do')
print cj

如您所见,每次输出都会显示 2 个不同的 cookie:

<cookielib.CookieJar[<Cookie JSESSIONID=0DEEE8331DE7D0DFDC22E860E065085F for www.idcourts.us/repository>]>
<cookielib.CookieJar[<Cookie JSESSIONID=E01C2BE8323632A32DA467F8A9B22A51 for www.idcourts.us/repository>]>

最佳答案

这不是 urllib 的问题。该网站做了一些时髦的东西。您需要为其请求几个样式表来验证您的 session ID:

import cookielib, urllib2

cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
# default User-Agent ('Python-urllib/2.6') will *not* work
opener.addheaders = [
    ('User-Agent', 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.11) Gecko/20101012 Firefox/3.6.11'),
    ]


stylesheets = [
    'https://www.idcourts.us/repository/css/id_style.css',
    'https://www.idcourts.us/repository/css/id_print.css',
]

home = opener.open('https://www.idcourts.us/repository/start.do')
print cj
sessid = cj._cookies['www.idcourts.us']['/repository']['JSESSIONID'].value
# Note the +=
opener.addheaders += [
    ('Referer', 'https://www.idcourts.us/repository/start.do'),
    ]
for st in stylesheets:
    # da trick
    opener.open(st+';jsessionid='+sessid)
search = opener.open('https://www.idcourts.us/repository/partySearch.do')
print cj
# perhaps need to keep updating the referer...

关于Python - urllib2 & cookielib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4582964/

相关文章:

Python:使用 def 和 for 循环导出列表中一系列值的多个数组

python - 如何将 float 舍入到给定的精度?

python - 解释一些Python代码。访问不存在的列?

python - 使用python将大文件下载到谷歌云存储

python - 如何修改 Pandas 的 Read_html 用户代理?

python - 使用 Mechanize 导入 Cookie

python - 在 Python 请求中使用 cookies.txt 文件

python - PyMongo聚合查询过滤器?

Python Mechanize - Way2Sms 发送消息

python - 使用 urllib2 获取纯文本,结果不完整