国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python3中關(guān)于cookie的創(chuàng)建與保存

2020-02-15 23:19:05
字體:
供稿:網(wǎng)友

1.cookie的作用

cookie 是指某些網(wǎng)站為了辨別用戶身份、進(jìn)行session跟蹤而儲(chǔ)存在用戶本地終端上的數(shù)據(jù),就像有些網(wǎng)站上的一些數(shù)據(jù)是需要登錄后才能看得到,那么想抓取某個(gè)頁面內(nèi)容,就需要用到cookie來模擬登陸了。

在用cookie模擬登陸的時(shí)候,需要用到python中的CookieJar,CookieJar中有一些子類,例如:

FileCookieJar,LWPCookieJar,MoziliaCookieJar CookieJar 管理http生成的cookie,負(fù)責(zé)cookie的存儲(chǔ)工作,向http當(dāng)中添加指定的cookie

MozillaCookieJarLWPCookieJar類都是FileCookieJar的子類。實(shí)現(xiàn)了具體的把cookie內(nèi)容保存為文件的方法。只是這兩個(gè)類對(duì)應(yīng)的標(biāo)準(zhǔn)不同而已。

2 獲取cookie

from http.cookiejar import CookieJar,LWPCookieJarfrom urllib.request import Request,urlopen,HTTPCookieProcessor,build_openerfrom urllib.parse import urlencodeimport ssl# ----------------------------------------獲取cookie---------------------------# 生成一個(gè)管理cookie的對(duì)象cookie_obj = CookieJar()# 創(chuàng)建一個(gè)支持cookie的對(duì)象,對(duì)象屬于HTTPCookieProcessorcookie_handler = HTTPCookieProcessor(cookie_obj)  #創(chuàng)建一個(gè)openeropener = build_opener(cookie_handler)  response = opener.open('http://www.baidu.com')print(response)#打印cookiefor cookie in cookie_obj:  print('key:',cookie.name)  print('value:',cookie.value)

3 保存cookie的文件

from http.cookiejar import CookieJar,LWPCookieJarfrom urllib.request import Request,urlopen,HTTPCookieProcessor,build_openerfilename = 'neihan.txt'# 設(shè)置cookie保存的文件cookie_obj = LWPCookieJar(filename=filename)# 創(chuàng)建一個(gè)支持cookie的對(duì)象,對(duì)象屬于HTTPCookieProcessorcookie_handler = HTTPCookieProcessor(cookie_obj)#創(chuàng)建一個(gè)openeropener = build_opener(cookie_handler)#請(qǐng)求網(wǎng)頁response = opener.open('http://www.neihanshequ.com')# 保存cookie到指定的文件當(dāng)中去# ignore_expires=True 即便目標(biāo)cookie已經(jīng)在文件中存在,仍然對(duì)其寫入# ignore_discard=True  即便cookie將要/已經(jīng)過期,仍然寫入cookie_obj.save(ignore_expires=True,ignore_discard=True)

4 使用本地的cookie進(jìn)行請(qǐng)求

from http.cookiejar import CookieJar,LWPCookieJarfrom urllib.request import Request,urlopen,HTTPCookieProcessor,build_openercookie = LWPCookieJar()#從文件中讀取cookie到變量cookie.load('neihan.txt')request = Request('http://www.neihanshequ.com')# 創(chuàng)建一個(gè)支持cookie的對(duì)象,對(duì)象屬于HTTPCookieProcessorcookie_handler = HTTPCookieProcessor(cookie)#創(chuàng)建一個(gè)openeropener = build_opener(cookie_handler)#請(qǐng)求網(wǎng)頁response = opener.open(request)# print(response.read().decode())

5 使用cookie進(jìn)行模擬登陸

from http.cookiejar import CookieJar,LWPCookieJarfrom urllib.request import Request,urlopen,HTTPCookieProcessor,build_openerfrom urllib.parse import urlencodeimport sslcookie = LWPCookieJar(filename='meishi.txt')cookie_handler = HTTPCookieProcessor(cookie)opener = build_opener(cookie_handler)headers={  'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0'}post_url = 'https://i.meishi.cc/login.php?redirect=https%3A%2F%2Fi.meishi.cc%2Flogin.php%3Fac%3Dzhuce'# urlencode對(duì)url當(dāng)中的參數(shù)進(jìn)行編碼# urlencode()編碼的對(duì)象為字典類型post_data = urlencode({  'username':'***********',  #自己的登陸賬號(hào)  'password':'************'  #自己的登陸密碼})# 請(qǐng)求url 并傳參,設(shè)置編碼方式request = Request(post_url,bytes(post_data,encoding='utf-8'))# 解決證書問題ssl._create_default_https_context = ssl._create_unverified_contextresponse = opener.open(request)print(response.read().decode())cookie.save(ignore_discard=True,ignore_expires=True)            
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 阳新县| 龙口市| 宁强县| 凤冈县| 宁化县| 鄄城县| 宁武县| 宝鸡市| 六安市| 台中县| 穆棱市| 伊川县| 合肥市| 嘉鱼县| 股票| 蕉岭县| 特克斯县| 沂南县| 榆树市| 垫江县| 永靖县| 遂平县| 武乡县| 福清市| 拉萨市| 定州市| 英吉沙县| 潞城市| 清水县| 林周县| 海阳市| 淅川县| 万荣县| 丰都县| 高唐县| 元朗区| 苏州市| 新郑市| 桂林市| 新兴县| 阿鲁科尔沁旗|