python3實(shí)現(xiàn)讀取chrome瀏覽器cookie
好幾年前我在做一些自動(dòng)化的腳本時(shí),腦子里也閃過這樣的想法:能不能直接把瀏覽器的cookies取出來用呢?
直到昨天看到代碼《python模擬發(fā)送動(dòng)彈》,想起來當(dāng)年我也曾經(jīng)有類似的想法沒能完成,那就優(yōu)先拿這個(gè)練手,之后的代碼也會(huì)用這個(gè)功能。
直接從瀏覽器中取出cookies,有以下好處和用途:
1、不需要配置用戶密碼,直接讀出瀏覽器中cookies就得到一樣的身份,用來完成各種自動(dòng)化操作。
2、部分網(wǎng)站登錄會(huì)更新Session,會(huì)導(dǎo)致之前成功登錄的Session失效,與瀏覽器使用相同的Session,不用進(jìn)行登錄操作,不會(huì)互相擠下線。
3、全是廢話,我不想寫了,行嗎?
使用到軟件的sqlite3的圖形管理工具有:
SQLiteDatabaseBrowserPortable http://www.dhdzp.com/database/251740.html
sqlitespy http://www.dhdzp.com/database/18390.html
使用到的python庫(kù)有:
sqlite3 python標(biāo)準(zhǔn)庫(kù),不需要下載安裝
pywin32 pywin32 windows的API庫(kù),讓python可以調(diào)用各種各樣的windows API,代碼中用到的win32crypt就是屬于pywin32庫(kù)的一部分。 建議手動(dòng)下載對(duì)應(yīng)版本pywin32安裝 http://www.dhdzp.com/softs/416136.html http://www.dhdzp.com/softs/416131.html
requests requests是一個(gè)相對(duì)比較簡(jiǎn)單易用的http庫(kù),用來代替urllib23之類的標(biāo)準(zhǔn)庫(kù),使用命令安裝pip install requests
看代碼:
import os
import sqlite3
import requests
from win32.win32crypt import CryptUnprotectData
def getcookiefromchrome(host='.oschina.net'):
cookiepath=os.environ['LOCALAPPDATA']+r"\Google\Chrome\User Data\Default\Cookies"
sql="select host_key,name,encrypted_value from cookies where host_key='%s'" % host
with sqlite3.connect(cookiepath) as conn:
cu=conn.cursor()
cookies={name:CryptUnprotectData(encrypted_value)[1].decode() for host_key,name,encrypted_value in cu.execute(sql).fetchall()}
print(cookies)
return cookies
#運(yùn)行環(huán)境windows 2012 server python3.4 x64 chrome 50
#以下是測(cè)試代碼
#getcookiefromchrome()
#getcookiefromchrome('.baidu.com')
url='http://my.oschina.net/'
httphead={'User-Agent':'Safari/537.36',}
#設(shè)置allow_redirects為真,訪問http://my.oschina.net/ 可以跟隨跳轉(zhuǎn)到個(gè)人空間
r=requests.get(url,headers=httphead,cookies=getcookiefromchrome('.oschina.net'),allow_redirects=1)
print(r.text)
相關(guān)文章
簡(jiǎn)單介紹Python中的decode()方法的使用
這篇文章主要介紹了簡(jiǎn)單介紹Python中的decode()方法的使用,是Python入門學(xué)習(xí)當(dāng)中必須掌握的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-05-05
Python實(shí)現(xiàn)的簡(jiǎn)單讀寫csv文件操作示例
這篇文章主要介紹了Python實(shí)現(xiàn)的簡(jiǎn)單讀寫csv文件操作,結(jié)合實(shí)例形式分析了Python使用csv模塊針對(duì)csv文件進(jìn)行讀寫操作的相關(guān)實(shí)現(xiàn)技巧與注意事項(xiàng),需要的朋友可以參考下2018-07-07
Python實(shí)現(xiàn)socket非阻塞通訊功能示例
這篇文章主要介紹了Python實(shí)現(xiàn)socket非阻塞通訊功能,結(jié)合實(shí)例形式分析了Python使用socket模塊進(jìn)行非阻塞通訊的原理、多線程及客戶端、服務(wù)器端相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-11-11
使用Python分析數(shù)據(jù)并進(jìn)行搜索引擎優(yōu)化的操作步驟
在互聯(lián)網(wǎng)時(shí)代,網(wǎng)站數(shù)據(jù)是一種寶貴的資源,可以用來分析用戶行為、市場(chǎng)趨勢(shì)、競(jìng)爭(zhēng)對(duì)手策略等,本文將介紹如何使用Python爬取網(wǎng)站數(shù)據(jù),并進(jìn)行搜索引擎優(yōu)化,,需要的朋友可以參考下2023-08-08
使用Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的項(xiàng)目監(jiān)控
這篇文章主要介紹了使用Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的項(xiàng)目監(jiān)控,包括連接數(shù)據(jù)庫(kù)進(jìn)行查詢等操作,需要的朋友可以參考下2015-03-03
一篇文章帶你學(xué)習(xí)Python3的高級(jí)特性(2)
這篇文章主要為大家詳細(xì)介紹了Python3的高階函數(shù),主要介紹什么是高級(jí)特性,高級(jí)特性的用法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01

