1. 程式人生 > 程式設計 >Python3獲取cookie常用三種方案

Python3獲取cookie常用三種方案

方案一:

利用selenium+phantomjs無介面瀏覽器的形式訪問網站,再獲取cookie值:

from selenium import webdriver
 
driver=webdriver.PhantomJS()
url="https://et.xiamenair.com/xiamenair/book/findFlights.action?lang=zh&tripType=0&queryFlightInfo=XMN,PEK,2018-01-15"
driver.get(url)
# 獲取cookie列表
cookie_list=driver.get_cookies()
# 格式化列印cookie
for cookie in cookie_list:
  cookie_dict[cookie['name']]=cookie['value']

方案二:

利用cookielib庫獲取:

(1)Python2

import cookielib
import urllib2
Url = "https://et.xiamenair.com/xiamenair/book/findFlights.action?lang=zh&tripType=0&queryFlightInfo=XMN,2018-01-15"
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
urllib2.install_opener(opener)
resp = urllib2.urlopen(Url)
for index,cookie in enumerate(cj):
  print '[',index,']',cookie

(2)Python3

from urllib import request
from http import cookiejar

#跳過SSL驗證證書
import ssl
#設定忽略SSL驗證
ssl._create_default_https_context = ssl._create_unverified_context

if __name__ == '__main__':
  #宣告一個CookieJar物件例項來儲存cookie
  cookie = cookiejar.CookieJar()
  #利用urllib.request庫的HTTPCookieProcessor物件來建立cookie處理器,也就CookieHandler
  handler=request.HTTPCookieProcessor(cookie)
  #通過CookieHandler建立opener
  opener = request.build_opener(handler)
  #此處的open方法開啟網頁
  response = opener.open('http://www.baidu.com')
  #列印cookie資訊
  for item in cookie:
    print('Name = %s' % item.name)
    print('Value = %s' % item.value)

方案三:

利用requests庫獲取:

Python3

def getCookie():
  url = "****"
  Hostreferer = {
    #'Host':'***','User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/70.0.3538.102 Safari/537.36'
  }
  #urllib或requests在開啟https站點是會驗證證書。 簡單的處理辦法是在get方法中加入verify引數,並設為False
  html = requests.get(url,headers=Hostreferer,verify=False)
  #獲取cookie:DZSW_WSYYT_SESSIONID
  if html.status_code == 200:
    print(html.cookies)
    for cookie in html.cookies:
      print(cookie)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。