python3實現(xiàn)讀取chrome瀏覽器cookie
好幾年前我在做一些自動化的腳本時,腦子里也閃過這樣的想法:能不能直接把瀏覽器的cookies取出來用呢?
直到昨天看到代碼《python模擬發(fā)送動彈》,想起來當(dāng)年我也曾經(jīng)有類似的想法沒能完成,那就優(yōu)先拿這個練手,之后的代碼也會用這個功能。
直接從瀏覽器中取出cookies,有以下好處和用途:
1、不需要配置用戶密碼,直接讀出瀏覽器中cookies就得到一樣的身份,用來完成各種自動化操作。
2、部分網(wǎng)站登錄會更新Session,會導(dǎo)致之前成功登錄的Session失效,與瀏覽器使用相同的Session,不用進(jìn)行登錄操作,不會互相擠下線。
3、全是廢話,我不想寫了,行嗎?
使用到軟件的sqlite3的圖形管理工具有:
SQLiteDatabaseBrowserPortable http://www.dbjr.com.cn/database/251740.html
sqlitespy http://www.dbjr.com.cn/database/18390.html
使用到的python庫有:
sqlite3 python標(biāo)準(zhǔn)庫,不需要下載安裝
pywin32 pywin32 windows的API庫,讓python可以調(diào)用各種各樣的windows API,代碼中用到的win32crypt就是屬于pywin32庫的一部分。 建議手動下載對應(yīng)版本pywin32安裝 http://www.dbjr.com.cn/softs/416136.html http://www.dbjr.com.cn/softs/416131.html
requests requests是一個相對比較簡單易用的http庫,用來代替urllib23之類的標(biāo)準(zhǔn)庫,使用命令安裝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 #運行環(huán)境windows 2012 server python3.4 x64 chrome 50 #以下是測試代碼 #getcookiefromchrome() #getcookiefromchrome('.baidu.com') url='http://my.oschina.net/' httphead={'User-Agent':'Safari/537.36',} #設(shè)置allow_redirects為真,訪問http://my.oschina.net/ 可以跟隨跳轉(zhuǎn)到個人空間 r=requests.get(url,headers=httphead,cookies=getcookiefromchrome('.oschina.net'),allow_redirects=1) print(r.text)
相關(guān)文章
Python 中下劃線的幾種用法(_、_xx、xx_、__xx、__xx__)
本文主要介紹了Python 中下劃線的幾種用法(_、_xx、xx_、__xx、__xx__),詳細(xì)的介紹了這幾種下劃線的用處,具有一定的參考價值,感興趣的可以了解一下2023-09-09python的ping網(wǎng)絡(luò)狀態(tài)監(jiān)測的實現(xiàn)(含多IP)
本文主要介紹了python的ping網(wǎng)絡(luò)狀態(tài)監(jiān)測的實現(xiàn)(含多IP),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03Python工程實踐之np.loadtxt()讀取數(shù)據(jù)
為了方便使用和記憶,有時候我們會把numpy.loadtxt()縮寫成np.loadtxt(),這篇文章主要給大家介紹了關(guān)于Python工程實踐之np.loadtxt()讀取數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2023-07-07Python實現(xiàn)bilibili時間長度查詢的示例代碼
這篇文章主要介紹了Python實現(xiàn)bilibili時間長度查詢的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01解決CentOS下ImportError: No module named &a
這篇文章主要介紹了解決CentOS下ImportError: No module named '_sqlite3'的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12Python使用matplotlib 模塊scatter方法畫散點圖示例
這篇文章主要介紹了Python使用matplotlib 模塊scatter方法畫散點圖,結(jié)合實例形式分析了Python數(shù)值運算與matplotlib模塊圖形繪制相關(guān)操作技巧,需要的朋友可以參考下2019-09-09Python十類常見異常類型總結(jié)(附捕獲及異常處理方式)
在編寫程序時難免會遇到錯誤,有的是編寫人員疏忽造成的語法錯誤,有的是程序內(nèi)部隱含邏輯問題造成的數(shù)據(jù)錯誤等等,這篇文章主要給大家介紹了關(guān)于Python十類常見異常類型總結(jié)的相關(guān)資料,文中還附捕獲及異常處理方式,需要的朋友可以參考下2023-06-06SVM算法的理解及其Python實現(xiàn)多分類和二分類問題
這篇文章主要介紹了SVM算法的理解及其Python實現(xiàn)多分類和二分類問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02