python3從chrome瀏覽器讀取cookie
好幾年前我在做一些自動化的腳本時,腦子里也閃過這樣的想法:能不能直接把瀏覽器的cookies取出來用呢漱凝?
直到昨天看到代碼《python模擬發(fā)送動彈》吼肥,想起來當年我也曾經(jīng)有類似的想法沒能完成乌叶,那就優(yōu)先拿這個練手跷敬,之后的代碼也會用這個功能讯私。
直接從瀏覽器中取出cookies,有以下好處和用途:
1西傀、不需要配置用戶密碼斤寇,直接讀出瀏覽器中cookies就得到一樣的身份,用來完成各種自動化操作拥褂。
2娘锁、部分網(wǎng)站登錄會更新Session,會導致之前成功登錄的Session失效,與瀏覽器使用相同的Session饺鹃,不用進行登錄操作莫秆,不會互相擠下線。
3尤慰、全是廢話馏锡,我不想寫了雷蹂,行嗎伟端?
使用到軟件的sqlite3的圖形管理工具有:
SQLiteDatabaseBrowserPortable http://sqlitebrowser.org/
sqlitespy http://www.yunqa.de/delphi/products/sqlitespy/index
使用到的python庫有:
sqlite3 python標準庫,不需要下載安裝
pywin32 pywin32 windows的API庫匪煌,讓python可以調用各種各樣的windows API,代碼中用到的win32crypt就是屬于pywin32庫的一部分责蝠。
建議手動下載對應版本pywin32安裝 https://sourceforge.net/projects/pywin32/?source=directory
requests requests是一個相對比較簡單易用的http庫,用來代替urllib23之類的標準庫,使用命令安裝pip install requests
看代碼:
"""
python3從chrome瀏覽器讀取cookie
get cookie from chrome
2016年5月26日 19:50:38 codegay
參考資料:
python模擬發(fā)送動彈
http://www.oschina.net/code/snippet_209614_21944
用Python進行SQLite數(shù)據(jù)庫操作
http://www.cnblogs.com/yuxc/archive/2011/08/18/2143606.html
encrypted_value解密腳本
http://www.ftium4.com/chrome-cookies-encrypted-value-python.html
利用cookie劫持微博私信
https://segmentfault.com/a/1190000002569850
你所不知道的HostOnly Cookie
https://imququ.com/post/host-only-cookie.html
"""
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',}
#設置allow_redirects為真,訪問http://my.oschina.net/ 可以跟隨跳轉到個人空間
r=requests.get(url,headers=httphead,cookies=getcookiefromchrome('.oschina.net'),allow_redirects=1)
print(r.text)
參考資料:
python模擬發(fā)送動彈
http://www.oschina.net/code/snippet_209614_21944
用Python進行SQLite數(shù)據(jù)庫操作
http://www.cnblogs.com/yuxc/archive/2011/08/18/2143606.html
encrypted_value解密腳本
http://www.ftium4.com/chrome-cookies-encrypted-value-python.html
利用cookie劫持微博私信
https://segmentfault.com/a/1190000002569850
你所不知道的HostOnly Cookie