A few years ago, when I was working on some automated scripts, this thought flashed through my mind: Can I directly take out the cookies from the browser and use them?
Until I saw the code "Python simulates sending motion" yesterday, I remembered that I had a similar idea but failed to complete it, so I gave it priority to practice with this, and future codes will also use this function.
Removing cookies directly from the browser has the following benefits and uses:
1. There is no need to configure a user password. You can directly read the cookies in the browser to get the same identity, which can be used to complete various automated operations.
2. Some website logins will update the Session, which will cause the previously successfully logged-in Session to become invalid. Use the same Session as the browser, no login operation is required, and each other will not be offline.
3. It’s all nonsense. I don’t want to write it anymore, okay?
The graphical management tools of sqlite3 used in the software are:
SQLiteDatabaseBrowserPortable http://www.jb51.net/database/251740.html
sqlitespy http://www.jb51.net/database/18390.html
The python libraries used are:
sqlite3 python standard library, no need to download and install
pywin32 The pywin32 windows API library allows python to call various windows APIs. The win32crypt used in the code is part of the pywin32 library. It is recommended to manually download the corresponding version pywin32 and install it http://www.jb51.net/softs/416136.html http://www.jb51.net/softs/416131.html
requests requests is a relatively simple and easy-to-use http library, used to replace standard libraries such as urllib23. Use the command pip install requests
Look at the code:
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)