python3 implements reading chrome browser cookies

WBOY
Release: 2016-07-21 14:53:17
Original
2116 people have browsed it

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)
Copy after login

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!