使用python脚本配合Chrome浏览器抓取网站cookie

  • 准备工作
  • 安装selenium库
  • 下载安装chromedriver
  • 配置环境变量

准备工作

安装selenium库

web自动化工具selenium可以模拟浏览器进行自动化操作

在pycharm中依次点击file—>settings—>project interpreter(可以直接在设置的搜索栏中搜索project interpreter),然后点击面板中的加号,搜索selenium,然后安装

python控制浏览器 点击时间 浏览器执行python脚本_python

也可以在DOS界面中通过命令安装(我的电脑里已经安装过了)pip install selenium

python控制浏览器 点击时间 浏览器执行python脚本_Chrome_02

下载安装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的自动更新(关闭方法自己百度)

Chrome部分历史版本下载

python控制浏览器 点击时间 浏览器执行python脚本_python控制浏览器 点击时间_03


以Windows系统为例,这里要下载chromedriver_win32.zip

python控制浏览器 点击时间 浏览器执行python脚本_Chrome_04


下载后把该程序解压到chrome.exe程序的同一目录下

查看chrome.exe位置:右键快捷方式/任务栏–>属性

python控制浏览器 点击时间 浏览器执行python脚本_Chrome_05


点击打开文件所在位置,把这个地址复制下来,后面添加环境变量和编写程序会用到

python控制浏览器 点击时间 浏览器执行python脚本_python控制浏览器 点击时间_06


把chromedriver.exe程序解压到chrome.exe程序的同一目录下

python控制浏览器 点击时间 浏览器执行python脚本_python_07

配置环境变量

右键“我的电脑”–>属性–>高级系统设置—>环境变量—>path,添加chromedriver程序所在路径

python控制浏览器 点击时间 浏览器执行python脚本_json_08



# 功能实现

注意

dirver = webdriver.Chrome(executable_path=r'chromedriver.exe路径')方法已弃用,虽然程序可以运行但会报错

python控制浏览器 点击时间 浏览器执行python脚本_Chrome_09

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数据

python控制浏览器 点击时间 浏览器执行python脚本_json_10