|
发表于 2024-5-6 12:29:36
|
显示全部楼层
非常抱歉给你带来困扰。这个错误是因为Python脚本没有足够的权限访问Chrome浏览器的cookie文件。在Windows上,普通用户无法直接读取Chrome浏览器的cookie文件。但是,我们可以尝试使用另一种方法来获取Chrome浏览器中特定站点的cookies。以下是具体步骤:
1. 打开Chrome浏览器,并登录到目标网站。
2. 在地址栏中输入`chrome://version/`,并找到`Profile Path`字段,复制该路径。(例如:`C:\Users\Your-Username\AppData\Local\Google\Chrome\User Data\Default`)
3. 用代码中的`data_path`变量替换上一步中复制的路径。
4. 尝试以下代码片段来获取Chrome浏览器特定站点的cookies:
- import os
- import sqlite3
- from win32crypt import CryptUnprotectData
- def get_chrome_cookies(url):
- data_path = 'C:\\Users\\Your-Username\\AppData\\Local\\Google\\Chrome\\User Data\\Default' # 替换为你的Chrome数据路径
- cookie_path = os.path.join(data_path, 'Cookies')
- conn = sqlite3.connect(cookie_path)
- cursor = conn.cursor()
- cursor.execute("SELECT name, value, encrypted_value FROM cookies WHERE host_key like '%" + url + "%'")
- cookies = []
- for name, value, encrypted_value in cursor.fetchall():
- if encrypted_value:
- decrypted_value = CryptUnprotectData(encrypted_value)[1].decode()
- cookies.append((name, decrypted_value))
- else:
- cookies.append((name, value))
- cursor.close()
- conn.close()
- return cookies
- url = "https://example.com" # 替换为你要获取cookies的网站
- cookies = get_chrome_cookies(url)
- for cookie in cookies:
- print(cookie)
复制代码
请确保将`data_path`变量替换为你的Chrome数据路径。然后运行以上代码,它将返回一个包含所需站点的cookies信息的列表。
这种方法需要在管理员权限下运行,并且需要使用`pywin32`库来解密加密的cookie值。你可以使用以下命令安装`pywin32`库:
希望这个解决方案能够解决你的问题!如果还有其他问题,请随时提问。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|