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,PEK,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)

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/16680.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论