python3讀取chrome瀏覽器cookies


直接從瀏覽器中取出cookies,有以下好處和用途:
1、不需要配置用戶密碼,直接讀出瀏覽器中cookies就得到一樣的身份,用來完成各種自動化操作。
2、部分網站登錄會更新Session,會導致之前成功登錄的Session失效,與瀏覽器使用相同的Session,不用進行登錄操作,不會互相擠下線。
3、全是廢話,我不想寫了,行嗎?

使用到軟件的sqlite3的圖形管理工具有:
SQLiteDatabaseBrowserPortable http://sqlitebrowser.org/
sqlitespy http://www.yunqa.de/delphi/products/sqlitespy/index

使用到的python庫有:
sqlite3 python標准庫,不需要下載安裝

pywin32 pywin32是python版的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 """ 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 #運行環境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) 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM