我们从Python开源项目中,提取了以下49个代码示例,用于说明如何使用cookielib.Cookie()。
def makeCookie(self,name,value): return cookielib.Cookie( version=0, name=name, value=value, port=None, port_specified=False, domain=NetTool.getDoMain(), domain_specified=True, domain_initial_dot=False, path="/", path_specified=True, secure=False, expires=None, discard=False, comment=None, comment_url=None, rest=None )
def makeCookie(self,name,value): return cookielib.Cookie( version=0, name=name, value=value, port=None, port_specified=False, domain=NetTool.getDoMain(), domain_specified=True, domain_initial_dot=False, path="/", path_specified=True, secure=False, expires=None, discard=False, comment=None, comment_url=None, rest=None ) # ????????cookies???makeCookie???
def load_ff_sessions(session_filename): cj = cookielib.CookieJar() if os.path.exists(session_filename): try: json_data = json.loads(open(session_filename, 'rb').read()) except ValueError as e: print 'Error parsing session JSON:', str(e) else: for window in json_data.get('windows', []): for cookie in window.get('cookies', []): import pprint; pprint.pprint(cookie) c = cookielib.Cookie(0, cookie.get('name', ''), cookie.get('value', ''), None, False, cookie.get('host', ''), cookie.get('host', '').startswith('.'), cookie.get('host', '').startswith('.'), cookie.get('path', ''), False, False, str(int(time.time()) + 3600 * 24 * 7), False, None, None, {}) cj.set_cookie(c) else: print 'Session filename does not exist:', session_filename return cj
def _make_cookie(self, **kwargs): return cookielib.Cookie( version=0, name=kwargs.get('name', None), value=kwargs.get('value', None), port=None, port_specified=False, domain=kwargs.get('domain', None), domain_specified=True, domain_initial_dot=False, path=kwargs.get('path', None), path_specified=True, secure=False, expires=kwargs.get('expires', None), discard=False, comment=None, comment_url=None, rest=None )
def make_cookie(self, name, value, domain, path='/'): return cookielib.Cookie( version=0, name=name, value=value, port=None, port_specified=False, domain=domain, domain_specified=True, domain_initial_dot=False, path=path, path_specified=True, secure=False, expires=None, discard=False, comment=None, comment_url=None, rest=None ) #================================================== # SHOW METHODS #==================================================
def get_cookielib_cookie(self): return cookielib.Cookie( version = 0, name = self.name, value = self.value, port = None, port_specified = False, domain = self.domain if self.domain else "" , # is this ok? domain_specified = True, domain_initial_dot = False, path = self.path, path_specified = True, secure = self.secure, expires = self.expires, discard = True, comment = None, comment_url = None, rest = None )
def getParamsFromUrlWithMeta(url, baseHeaderOutParams=None): from Plugins.Extensions.IPTVPlayer.iptvdm.iptvdh import DMHelper HANDLED_HTTP_HEADER_PARAMS = DMHelper.HANDLED_HTTP_HEADER_PARAMS #['Host', 'User-Agent', 'Referer', 'Cookie', 'Accept', 'Range'] outParams = {} tmpParams = {} postData = None if isinstance(url, strwithmeta): if None != baseHeaderOutParams: tmpParams['header'] = baseHeaderOutParams else: tmpParams['header'] = {} for key in url.meta: if key in HANDLED_HTTP_HEADER_PARAMS: tmpParams['header'][key] = url.meta[key] if 0 < len(tmpParams['header']): outParams = tmpParams if 'iptv_proxy_gateway' in url.meta: outParams['proxy_gateway'] = url.meta['iptv_proxy_gateway'] if 'iptv_http_proxy' in url.meta: outParams['http_proxy'] = url.meta['iptv_http_proxy'] return outParams, postData
def create_cookie(host, path, secure, expires, name, value): """Shortcut function to create a cookie """ return cookielib.Cookie(0, name, value, None, False, host, host.startswith('.'), host.startswith('.'), path, True, secure, expires, False, None, None, {})
def setCookie(self, key, val, domain): ck = cookielib.Cookie(version=0, name=key, value=val, port=None, port_specified=False, domain=domain, domain_specified=False, domain_initial_dot=False, path='/', path_specified=True, secure=False, expires=None, discard=True, comment=None, comment_url=None, rest={'HttpOnly': None}, rfc2109=False) self.__cookie.set_cookie(ck) #self.__cookie.clear() clean cookie # vim : tabstop=2 shiftwidth=2 softtabstop=2 expandtab
def build_opener_with_chrome_cookies(domain=None): #????? cookie_file_path = os.path.join(os.environ['LOCALAPPDATA'], r'Google\Chrome\User Data\Default\Cookies') if not os.path.exists(cookie_file_path): raise Exception('Cookies file not exist!') conn = sqlite3.connect(cookie_file_path) sql = 'select host_key, name, value, path from cookies' if domain: sql += ' where host_key like "%{}%"'.format(domain) cookiejar = cookielib.CookieJar() # No cookies stored yet for row in conn.execute(sql): print row cookie_item = cookielib.Cookie( version=0, name=row[1], value=row[2], port=None, port_specified=None, domain=row[0], domain_specified=None, domain_initial_dot=None, path=row[3], path_specified=None, secure=None, expires=None, discard=None, comment=None, comment_url=None, rest=None, rfc2109=False, ) cookiejar.set_cookie(cookie_item) # Apply each cookie_item to cookiejar conn.close() return urllib2.build_opener(urllib2.HTTPCookieProcessor(cookiejar)) # Return opener #build_opener_with_chrome_cookies()
def setCookie(self, key, val, domain): ck = cookielib.Cookie(version=0, name=key, value=val, port=None, port_specified=False, domain=domain, domain_specified=False, domain_initial_dot=False, path='/', path_specified=True, secure=False, expires=None, discard=True, comment=None, comment_url=None, rest={'HttpOnly': None}, rfc2109=False) self.__cookie.set_cookie(ck) self.__cookie.save(ignore_discard=True,ignore_expires=True) # self.__cookie.clear() clean cookie # vim : tabstop=2 shiftwidth=2 softtabstop=2 expandtab
def test_parse_ns_headers_special_names(self): # names such as 'expires' are not special in first name=value pair # of Set-Cookie: header from cookielib import parse_ns_headers # Cookie with name 'expires' hdr = 'expires=01 Jan 2040 22:23:32 GMT' expected = [[("expires", "01 Jan 2040 22:23:32 GMT"), ("version", "0")]] self.assertEqual(parse_ns_headers([hdr]), expected)
def interact_netscape(cookiejar, url, *set_cookie_hdrs): return _interact(cookiejar, url, set_cookie_hdrs, "Set-Cookie")
def _interact(cookiejar, url, set_cookie_hdrs, hdr_name): """Perform a single request / response cycle, returning Cookie: header.""" from urllib2 import Request req = Request(url) cookiejar.add_cookie_header(req) cookie_hdr = req.get_header("Cookie", "") headers = [] for hdr in set_cookie_hdrs: headers.append("%s: %s" % (hdr_name, hdr)) res = FakeResponse(headers, url) cookiejar.extract_cookies(res, req) return cookie_hdr
def test_missing_value(self): from cookielib import MozillaCookieJar, lwp_cookie_str # missing = sign in Cookie: header is regarded by Mozilla as a missing # name, and by cookielib as a missing value filename = test_support.TESTFN c = MozillaCookieJar(filename) interact_netscape(c, "http://www.acme.com/", 'eggs') interact_netscape(c, "http://www.acme.com/", '"spam"; path=/foo/') cookie = c._cookies["www.acme.com"]["/"]["eggs"] self.assertIsNone(cookie.value) self.assertEqual(cookie.name, "eggs") cookie = c._cookies["www.acme.com"]['/foo/']['"spam"'] self.assertIsNone(cookie.value) self.assertEqual(cookie.name, '"spam"') self.assertEqual(lwp_cookie_str(cookie), ( r'"spam"; path="/foo/"; domain="www.acme.com"; ' 'path_spec; discard; version=0')) old_str = repr(c) c.save(ignore_expires=True, ignore_discard=True) try: c = MozillaCookieJar(filename) c.revert(ignore_expires=True, ignore_discard=True) finally: os.unlink(c.filename) # cookies unchanged apart from lost info re. whether path was specified self.assertEqual( repr(c), re.sub("path_specified=%s" % True, "path_specified=%s" % False, old_str) ) self.assertEqual(interact_netscape(c, "http://www.acme.com/foo/"), '"spam"; eggs')
def test_ns_parser_special_names(self): # names such as 'expires' are not special in first name=value pair # of Set-Cookie: header from cookielib import CookieJar c = CookieJar() interact_netscape(c, "http://www.acme.com/", 'expires=eggs') interact_netscape(c, "http://www.acme.com/", 'version=eggs; spam=eggs') cookies = c._cookies["www.acme.com"]["/"] self.assertTrue('expires' in cookies) self.assertTrue('version' in cookies)
def test_missing_final_slash(self): # Missing slash from request URL's abs_path should be assumed present. from cookielib import CookieJar, DefaultCookiePolicy from urllib2 import Request url = "http://www.acme.com" c = CookieJar(DefaultCookiePolicy(rfc2965=True)) interact_2965(c, url, "foo=bar; Version=1") req = Request(url) self.assertEqual(len(c), 1) c.add_cookie_header(req) self.assertTrue(req.has_header("Cookie"))
def test_Cookie_iterator(self): from cookielib import CookieJar, Cookie, DefaultCookiePolicy cs = CookieJar(DefaultCookiePolicy(rfc2965=True)) # add some random cookies interact_2965(cs, "http://blah.spam.org/", 'foo=eggs; Version=1; ' 'Comment="does anybody read these?"; ' 'CommentURL="http://foo.bar.net/comment.html"') interact_netscape(cs, "http://www.acme.com/blah/", "spam=bar; secure") interact_2965(cs, "http://www.acme.com/blah/", "foo=bar; secure; Version=1") interact_2965(cs, "http://www.acme.com/blah/", "foo=bar; path=/; Version=1") interact_2965(cs, "http://www.sol.no", r'bang=wallop; version=1; domain=".sol.no"; ' r'port="90,100, 80,8080"; ' r'max-age=100; Comment = "Just kidding! (\"|\\\\) "') versions = [1, 1, 1, 0, 1] names = ["bang", "foo", "foo", "spam", "foo"] domains = [".sol.no", "blah.spam.org", "www.acme.com", "www.acme.com", "www.acme.com"] paths = ["/", "/", "/", "/blah", "/blah/"] for i in range(4): i = 0 for c in cs: self.assertIsInstance(c, Cookie) self.assertEqual(c.version, versions[i]) self.assertEqual(c.name, names[i]) self.assertEqual(c.domain, domains[i]) self.assertEqual(c.path, paths[i]) i = i + 1
def test_bad_cookie_header(self): def cookiejar_from_cookie_headers(headers): from cookielib import CookieJar from urllib2 import Request c = CookieJar() req = Request("http://www.example.com/") r = FakeResponse(headers, "http://www.example.com/") c.extract_cookies(r, req) return c future = cookielib.time2netscape(time.time()+3600) # none of these bad headers should cause an exception to be raised for headers in [ ["Set-Cookie: "], # actually, nothing wrong with this ["Set-Cookie2: "], # ditto # missing domain value ["Set-Cookie2: a=foo; path=/; Version=1; domain"], # bad max-age ["Set-Cookie: b=foo; max-age=oops"], # bad version ["Set-Cookie: b=foo; version=spam"], ["Set-Cookie:; Expires=%s" % future], ]: c = cookiejar_from_cookie_headers(headers) # these bad cookies shouldn't be set self.assertEqual(len(c), 0) # cookie with invalid expires is treated as session cookie headers = ["Set-Cookie: c=foo; expires=Foo Bar 12 33:22:11 2000"] c = cookiejar_from_cookie_headers(headers) cookie = c._cookies["www.example.com"]["/"]["c"] self.assertIsNone(cookie.expires)
def test_netscape_misc(self): # Some additional Netscape cookies tests. from cookielib import CookieJar from urllib2 import Request c = CookieJar() headers = [] req = Request("http://foo.bar.acme.com/foo") # Netscape allows a host part that contains dots headers.append("Set-Cookie: Customer=WILE_E_COYOTE; domain=.acme.com") res = FakeResponse(headers, "http://www.acme.com/foo") c.extract_cookies(res, req) # and that the domain is the same as the host without adding a leading # dot to the domain. Should not quote even if strange chars are used # in the cookie value. headers.append("Set-Cookie: PART_NUMBER=3,4; domain=foo.bar.acme.com") res = FakeResponse(headers, "http://www.acme.com/foo") c.extract_cookies(res, req) req = Request("http://foo.bar.acme.com/foo") c.add_cookie_header(req) self.assertTrue( "PART_NUMBER=3,4" in req.get_header("Cookie") and "Customer=WILE_E_COYOTE" in req.get_header("Cookie"))
def test_empty_path(self): from cookielib import CookieJar, DefaultCookiePolicy from urllib2 import Request # Test for empty path # Broken web-server ORION/1.3.38 returns to the client response like # # Set-Cookie: JSESSIONID=ABCDERANDOM123; Path= # # ie. with Path set to nothing. # In this case, extract_cookies() must set cookie to / (root) c = CookieJar(DefaultCookiePolicy(rfc2965 = True)) headers = [] req = Request("http://www.ants.com/") headers.append("Set-Cookie: JSESSIONID=ABCDERANDOM123; Path=") res = FakeResponse(headers, "http://www.ants.com/") c.extract_cookies(res, req) req = Request("http://www.ants.com/") c.add_cookie_header(req) self.assertEqual(req.get_header("Cookie"), "JSESSIONID=ABCDERANDOM123") self.assertEqual(req.get_header("Cookie2"), '$Version="1"') # missing path in the request URI req = Request("http://www.ants.com:8080") c.add_cookie_header(req) self.assertEqual(req.get_header("Cookie"), "JSESSIONID=ABCDERANDOM123") self.assertEqual(req.get_header("Cookie2"), '$Version="1"')
def add_dict_to_cookiejar(cj, cookie_dict): """Returns a CookieJar from a key/value dictionary. :param cj: CookieJar to insert cookies into. :param cookie_dict: Dict of key/values to insert into CookieJar. """ for k, v in cookie_dict.items(): cookie = cookielib.Cookie( version=0, name=k, value=v, port=None, port_specified=False, domain='', domain_specified=False, domain_initial_dot=False, path='/', path_specified=True, secure=False, expires=None, discard=True, comment=None, comment_url=None, rest={'HttpOnly': None}, rfc2109=False ) # add cookie to cookiejar cj.set_cookie(cookie) return cj
def build_opener_with_cookie_str(cookie_str, domain, path='/'): simple_cookie = Cookie.SimpleCookie(cookie_str) # Parse Cookie from str cookiejar = cookielib.CookieJar() # No cookies stored yet for c in simple_cookie: cookie_item = cookielib.Cookie( version=0, name=c, value=str(simple_cookie[c].value), port=None, port_specified=None, domain=domain, domain_specified=None, domain_initial_dot=None, path=path, path_specified=None, secure=None, expires=None, discard=None, comment=None, comment_url=None, rest=None, rfc2109=False, ) cookiejar.set_cookie(cookie_item) # Apply each cookie_item to cookiejar return urllib2.build_opener(urllib2.HTTPCookieProcessor(cookiejar)) # Return opener
def saveCookies(self, cookiejar): MozillaCookieJar = cookielib.MozillaCookieJar() for c in cookiejar: args = dict(vars(c).items()) args['rest'] = args['_rest'] del args['_rest'] c = cookielib.Cookie(**args) MozillaCookieJar.set_cookie(c) MozillaCookieJar.save('youdaoCookies', ignore_discard=True)
def loadCookies(self): if os.path.exists('youdaoCookies'): self.window.debug.appendPlainText('625: Cookie exists!') MozillaCookieJar = cookielib.MozillaCookieJar() MozillaCookieJar.load('youdaoCookies', ignore_discard=True) return MozillaCookieJar else: return False
def login(self, username, password): self.window.debug.appendPlainText('633: Process login!') password = hashlib.md5(password.encode('utf-8')).hexdigest() url = "https://logindict.youdao.com/login/acc/login" payload = "username=" + urllib.quote(username) + "&password=" + password + \ "&savelogin=1&app=web&tp=urstoken&cf=7&fr=1&ru=http%3A%2F%2Fdict.youdao.com%2Fwordbook%2Fwordlist%3Fkeyfrom%3Dnull&product=DICT&type=1&um=true&savelogin=1" headers = { 'Cache-Control': '"no-cache"', 'Referer': 'http://account.youdao.com/login?service=dict&back_url=http://dict.youdao.com/wordbook/wordlist%3Fkeyfrom%3Dlogin_from_dict2.index', 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36', 'Content-Type': 'application/x-www-form-urlencoded' } url = url + '?' + payload req = urllib2.Request(url, headers=headers) cookie = cookielib.CookieJar() self.opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie)) self.req = urllib2.install_opener(self.opener) urllib2.urlopen(req) if any(username in c.value for c in cookie): self.saveCookies(cookie) self.window.debug.appendPlainText('652: Cookie saved') return True else: self.window.debug.appendPlainText('655: Login failed') self.error = 1 return False
def test_bad_cookie_header(self): def cookiejar_from_cookie_headers(headers): from cookielib import CookieJar from urllib2 import Request c = CookieJar() req = Request("http://www.example.com/") r = FakeResponse(headers, "http://www.example.com/") c.extract_cookies(r, req) return c # none of these bad headers should cause an exception to be raised for headers in [ ["Set-Cookie: "], # actually, nothing wrong with this ["Set-Cookie2: "], # ditto # missing domain value ["Set-Cookie2: a=foo; path=/; Version=1; domain"], # bad max-age ["Set-Cookie: b=foo; max-age=oops"], # bad version ["Set-Cookie: b=foo; version=spam"], ]: c = cookiejar_from_cookie_headers(headers) # these bad cookies shouldn't be set self.assertEqual(len(c), 0) # cookie with invalid expires is treated as session cookie headers = ["Set-Cookie: c=foo; expires=Foo Bar 12 33:22:11 2000"] c = cookiejar_from_cookie_headers(headers) cookie = c._cookies["www.example.com"]["/"]["c"] self.assertIsNone(cookie.expires)