python获取chrome里的cookies

        这段代码只能在Windows系统运行,chrome的cookies信息存放在一个sqlite数据库中

import base64
import sqlite3
import logging
from win32crypt import CryptUnprotectData
from cryptography.hazmat.primitives.ciphers.aead import AESGCM


def get_string(local_state):
    with open(local_state, 'r', encoding='utf-8') as f:
        s = json.load(f)['os_crypt']['encrypted_key']
    return s

def pull_the_key(base64_encrypted_key):
    encrypted_key_with_header = base64.b64decode(base64_encrypted_key)
    encrypted_key = encrypted_key_with_header[5:]
    key = CryptUnprotectData(encrypted_key, None, None, None, 0)[1]
    return key

def decrypt_string(key, data):
    nonce, cipherbytes = data[3:15], data[15:]
    aesgcm = AESGCM(key)
    plainbytes = aesgcm.decrypt(nonce, cipherbytes, None)
    plaintext = plainbytes.decode('utf-8')
    return plaintext

def getCookieFromChrome(host='.oschina.net'):
    local_state = os.environ['LOCALAPPDATA'] + r'\Google\Chrome\User Data\Local State'
    cookie_path = os.environ['LOCALAPPDATA'] + r"\Google\Chrome\User Data\Default\Cookies"
    if not os.path.exists(cookie_path):
        cookie_path = os.environ['LOCALAPPDATA'] + r"\Google\Chrome\User Data\Default\Network\Cookies"

    sql = "select host_key,name,encrypted_value from cookies where host_key='%s'" % host

    with sqlite3.connect(cookie_path) as conn:
        conn.text_factory = bytes
        cu = conn.cursor()
        res = cu.execute(sql).fetchall()
        cu.close()
        cookies = {}
        key = pull_the_key(get_string(local_state))
        for host_key, name, encrypted_value in res:
            if encrypted_value[0:3] == b'v10':
                cookies[str(name, "utf-8")] = decrypt_string(key, encrypted_value)
            else:
                cookies[str(name, "utf-8")] = CryptUnprotectData(encrypted_value)[1].decode()

        return cookies


if __name__ == '__main__':
    cookies = getCookieFromChrome(host='.amazon.com')

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python Selenium可以通过以下代码获取cookies: ```python from selenium import webdriver # 创建浏览器对象 browser = webdriver.Chrome() # 打开网页 browser.get('https://www.baidu.com') # 获取cookies cookies = browser.get_cookies() # 打印cookies print(cookies) # 关闭浏览器 browser.quit() ``` 以上代码中,首先创建了一个Chrome浏览器对象,然后打开了百度网页。接着使用`get_cookies()`方法获取了当前页面的cookies,并将其打印出来。最后关闭了浏览器。 ### 回答2: Python Selenium是一个非常有用的工具,可以帮助我们模拟人类操作浏览器,从而实现各种自动化任务。在很多情况下,我们需要获取浏览器中的cookies信息,以便于在后续的操作中作为参数传递给服务器,或者在不同的浏览器中共享cookies,来达到自动登录等操作。下面,我将介绍一下如何使用Python Selenium获取cookies。 1. 启动浏览器并打开目标网站 首先,我们需要启动一个浏览器并打开目标网站。可以使用如下代码: ```python from selenium import webdriver # 指定浏览器类型 browser = webdriver.Chrome() # 打开目标网站 browser.get("https://www.baidu.com") ``` 2. 获取浏览器的cookies信息 一旦打开了目标网站,我们就可以通过以下代码来获取浏览器中的所有cookies信息: ```python # 获取所有cookies信息 cookies = browser.get_cookies() # 输出所有cookies信息 print(cookies) ``` 这,browser.get_cookies()返回一个字典类型的数据,包含了当前浏览器中所有的cookies信息。我们可以使用print()语句输出所有的cookies信息,方便我们查看。 3. 获取指定名称的cookies信息 如果我们只需要获取指定名称的cookies信息,可以使用如下代码: ```python # 获取指定名称的cookies信息 cookie = browser.get_cookie("cookie_name") # 输出指定名称的cookies信息 print(cookie) ``` 这,我们只需要将目标cookies的名称传递给browser.get_cookie()函数即可。如果该名称对应的cookies不存在,该函数将返回None。 4. 向浏览器添加cookies信息 在有些情况下,我们需要将其他程序或者浏览器中的cookies信息添加到当前的浏览器中,以便于后续的操作。可以使用如下代码将cookies信息添加到当前浏览器中: ```python # 添加cookies信息 cookie = {'name': 'cookie_name', 'value': 'cookie_value'} browser.add_cookie(cookie) ``` 这,我们需要将cookie的名称和值添加到一个字典中,然后使用browser.add_cookie()函数将该cookie添加到当前浏览器中。 总的来说,Python Selenium获取cookies信息非常简单,只需要使用get_cookies()和add_cookie()这两个函数即可。获取cookies信息后,我们可以按照需求进行处理,并在后续的操作中使用。 ### 回答3: Python中的Selenium是一种自动化测试工具,它可以模拟人类用户的操作,用于爬取网站数据、批量测试网站、自动化填写表单等工作。 在网站登录后,我们需要从网站获取Cookies,以便在后续访问过程中保持会话状态。以下是使用Python Selenium获取Cookies的步骤: 1.导入Selenium和webdriver库: ```python from selenium import webdriver ``` 2.打开一个浏览器窗口: ```python driver = webdriver.Chrome() ``` 3.访问要获取Cookies的网站: ```python driver.get("https://example.com") ``` 4.手动在浏览器中进行登录操作,以便获取Cookies。 5.使用Selenium的get_cookies()方法获取当前会话的所有Cookies信息: ```python cookies = driver.get_cookies() ``` 6.以字典的形式打印出获取到的Cookies信息: ```python for cookie in cookies: print(cookie['name'], cookie['value']) ``` 以上就是使用Python Selenium获取Cookies的简单步骤,通过获取Cookies,我们可以在之后的操作中自动填写Cookie信息,维持会话状态,避免频繁登录操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值