如何将cookie发送到urllib2(和urllib)python中的网站?

时间:2013-12-17 21:41:18

标签: python cookies urllib2 urllib

我更愿意只使用urllib2和urllib,我知道问题已在这里得到解答,但当我阅读回复时,我感到非常困惑。许多回复建议使用包含“标题”一词的内容,因此Cookie只是常规标题,如http://myhttp.info/,或者它们是一个子集?我也很困惑我如何能够成功地将它们实现到我的代码中

def getURLSourceFromChrome(url):
    values = {}
    headers = { 'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36',
                'connection' : 'keep-alive',
                'Accept' :     'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
                'Referer' : 'http://google.com/',
                }

    data = urllib.urlencode(values)
    req = urllib2.Request(url, data, headers)
    response = urllib2.urlopen(req)
    return response.read()

大多数响应使用urllib.buildopener(),我想知道是否必须使用该方法来完成任务,或者我是否可以简单地将其添加到我的代码中,如下所示:

def getURLSourceFromChrome(url):
    values = {}
    headers = { 'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36',
                'connection' : 'keep-alive',
                'Accept' :     'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
                'Referer' : 'http://google.com/',
                'someCookie' : 'SomeCookieInformation'
                }

    data = urllib.urlencode(values)
    req = urllib2.Request(url, data, headers)
    response = urllib2.urlopen(req)
    return response.read()

我正在使用Python 2.7

1 个答案:

答案 0 :(得分:0)

“根据需要多次设置多个cookie添加set-cookie标头。关于引号,在python中应该是header = {...”Set-Cookie“:”name = vale“...} if你的问题是关于Set-Cookie的http规范,请参阅链接 - ejrav“