Python 的cookie处理操作


  • 使用已有的cookie访问网站

import cookielib, urllib2

ckjar = cookielib.MozillaCookieJar(os.path.join(’C:\Documents and Settings\tom\Application Data\Mozilla\Firefox\Profiles\h5m61j1i.default’, ‘cookies.txt’))

req = urllib2.Request(url, postdata, header)

req.add_header(’User-Agent’, \ 
‘Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)’)

opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(ckjar) )

f = opener.open(req) 
htm = f.read() 
f.close()

  • 访问网站获得cookie,并把获得的cookie保存在cookie文件中

import cookielib, urllib2

req = urllib2.Request(url, postdata, header) 
req.add_header(’User-Agent’, \ 
‘Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)’)

ckjar = cookielib.MozillaCookieJar(filename) 
ckproc = urllib2.HTTPCookieProcessor(ckjar)

opener = urllib2.build_opener(ckproc)

f = opener.open(req) 
htm = f.read() 
f.close()

ckjar.save(ignore_discard=True, ignore_expires=True)

  • 使用指定的参数生成cookie,并用这个cookie访问网站
  1. import urllib.request as ur  
  2. import urllib.parse as up  
  3. #import http.cookiejar as cj   
  4. #coding:utf8   
  5.   
  6. #jiayuan   
  7. name='xxxxxx'  
  8.   
  9. headers={'User-Agent':'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)',  
  10.          }  
  11.   
  12. #cookiejar = cj.CookieJar()   
  13. #urlopener = ur.build_opener(ur.HTTPCookieProcessor(cookiejar))   
  14. urlopener = ur.build_opener(ur.HTTPCookieProcessor())  
  15.   
  16. values = {'password':'xxx','name':'xxx@xxx.com'}  
  17. data=up.urlencode(values)  
  18. #print (data.encode().decode('utf8'))   
  19.   
  20.   
  21. url1='http://login.jiayuan.com/dologin.php'  
  22.   
  23. request = ur.Request(url1, data.encode(),headers)  
  24. url = urlopener.open(request)  
  25. #page = url.read().decode('utf8','ingore')   
  26.   
  27.   
  28.   
  29. url2='http://www.jiayuan.com/usercp#maodian'  
  30.   
  31. request = ur.Request(url2,headers=headers)  
  32. url = urlopener.open(request)  
  33. page = url.read().decode('utf8','ingore')  
  34.   
  35.   
  36. if page.find(name)>0:  
  37.     print ('ok')  
  38. else:  
  39.     print ('fail')  

相关内容