使用python脚本配合Chrome浏览器抓取网站cookie
- 准备工作
- 安装selenium库
- 下载安装chromedriver
- 配置环境变量
准备工作
安装selenium库
web自动化工具selenium可以模拟浏览器进行自动化操作
在pycharm中依次点击file—>settings—>project interpreter(可以直接在设置的搜索栏中搜索project interpreter),然后点击面板中的加号,搜索selenium,然后安装
也可以在DOS界面中通过命令安装(我的电脑里已经安装过了)pip install selenium
下载安装chromedriver
首先查看Chrome浏览器的版本,依次点击浏览器右上角的三个点–>设置–>关于Chrome,就可查看浏览器版本号,然后在下面的网站中下载和自己浏览器版本号相同的chromedriver程序
chromedriver下载地址
例如,我的电脑中chrome浏览器的版本是106.0.5249.61,下载106.0.5249.61版本号的chromedriver.exe程序(如果网站里没有对应版本号,下载网站中对应版本号的Chrome,覆盖安装掉原来的Chrome,例如我的电脑中chrome的版本是106.0.5249.62,那么就下载106.5249.61版本的Chrome覆盖安装,替换掉原来的版本)
建议下载比较新的版本,安装旧版本后会自动更新导致程序无法运行,如果安装了旧版本可以关闭google的自动更新(关闭方法自己百度)
以Windows系统为例,这里要下载chromedriver_win32.zip
下载后把该程序解压到chrome.exe程序的同一目录下
查看chrome.exe位置:右键快捷方式/任务栏–>属性
点击打开文件所在位置
,把这个地址复制下来,后面添加环境变量和编写程序会用到
把chromedriver.exe程序解压到chrome.exe程序的同一目录下
配置环境变量
右键“我的电脑”–>属性–>高级系统设置—>环境变量—>path,添加chromedriver程序所在路径
# 功能实现
注意
dirver = webdriver.Chrome(executable_path=r'chromedriver.exe路径')
方法已弃用,虽然程序可以运行但会报错
executable_path 被重构到了 Service 函数里,官方推荐的方法为
path=Service(r'C:\Google\Chrome\Application\chromedriver.exe')
dirver = webdriver.Chrome(service=path)
最终的程序为
import json
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
# 已弃用的写法
# dirver = webdriver.Chrome(executable_path=r'C:\Users\13632\AppData\Local\Google\Chrome\Application\chromedriver.exe')
path = Service(r'C:\Google\Chrome\Application\chromedriver.exe') # 填入chromedriver.exe的路径
dirver = webdriver.Chrome(service=path)
dirver.get('https://fofa.info') #此处填入想要获取cookie的目标网站
# 获得所有cookie信息(返回数据格式是字典)
dictCookies = dirver.get_cookies()
print(dictCookies)
# 将dict转化成str格式
jsonCookies = json.dumps(dictCookies)
print(jsonCookies)
# 登录完成后,将cookies保存到本地文件
with open("cookies_fofa.json", "w") as fp:
fp.write(jsonCookies)
运行程序后,会自动弹出一个Chrome窗口并打开目标网站,登陆后便会将网站cookie保存至本地
本地文件cookies_fofa.json中保存的部分cookie数据