gpt4 book ai didi

python - 通过 urllib2 python 发送/设置 cookie

转载 作者:行者123 更新时间:2023-11-28 22:00:12 27 4
gpt4 key购买 nike

我是 python 的新手,现在尝试使用 urllib2 发送 cookie 令我震惊了几天。所以,基本上,在我想要获取的页面上,我从 Firebug 中看到有一个“已发送的 cookie”,如下所示:

 list_type=height

.. 基本上按一定顺序排列页面上的列表。

我想通过 urllib2 发送上面的 cookie 信息,以便呈现的页面使上面的设置生效 - 这是我试图编写的代码以使其工作:

class Networksx(object):
def __init__(self):
self.cj = cookielib.CookieJar()
self.opener = urllib2.build_opener\
#socks handler
self.opener.addheaders = [
('User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13'),
('Accept-Charset', 'ISO-8859-1,utf-8;q=0.7,*;q=0.7'),
('Keep-Alive', '115'),
('Connection', 'keep-alive'),
('Cache-Control', 'max-age=0'),
('Referer', 'http://www.google.com'),
("Cookie", {"list_type":"height"}),
]
urllib2.install_opener(self.opener)
self.params = { 'Set-Cookie': "list_type":"height"}
self.encoded_params = urllib.urlencode( self.params )

def fullinfo(self,url):
return self.opener.open(url,self.encoded_params).read()

..如您所见,我已经尝试了一些方法:

  • 通过标题设置参数
  • 设置cookie

但是,这些似乎并没有像我希望的那样以特定的 list_order(高度)呈现页面。我想知道是否有人可以指出关于如何使用 urllib2 发送 cookie 信息的正确方向

谢谢。

最佳答案

生成 cookie.txt 的一种简单方法是这个 chrome 扩展:https://chrome.google.com/webstore/detail/cookietxt-export/lopabhfecdfhgogdbojmaicoicjekelh

import urllib2, cookielib

url = 'https://example.com/path/default.aspx'
txheaders = {'User-agent' : 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'}

cj = cookielib.LWPCookieJar()
# cj.load signature: filename=None, ignore_discard=False, ignore_expires=False
cj.load('/path/to/my/cookies.txt')

opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
urllib2.install_opener(opener)

req = urllib2.Request(url, None, txheaders)
handle = urllib2.urlopen(req)

[更新]

抱歉,我粘贴的是一个早已被遗忘的旧代码片段。来自 LWPCookieJar 文档字符串:

The LWPCookieJar saves a sequence of "Set-Cookie3" lines. "Set-Cookie3" is the format used by the libwww-perl libary, not known to be compatible with any browser, but which is easy to read and doesn't lose information about RFC 2965 cookies.

所以不兼容现代浏览器生成的cookie.txt。如果您尝试加载它,您将得到:LoadError: 'cookies.txt' does not look like a Set-Cookie3 (LWP) format file

您可以像 OP 一样转换文件:

there is something wrong with the format of the output from chrome extension. I just googled the lwp problem and found: code.activestate.com/recipes/302930-cookielib-example the code spits out the cookie in lwp format and then I follow your steps as it is. - James W

您也可以使用这个 Firefox addon ,然后是“工具 -> 导出 cookie”。确保 cookies.txt 文件中的第一行是“# Netscape HTTP Cookie 文件”并使用:

cj = cookielib.MozillaCookieJar('/path/to/my/cookies.txt')
cj.load()

关于python - 通过 urllib2 python 发送/设置 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15312369/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com