在编写爬虫,或者模拟浏览器进行一些操作时,如果每次都模拟用户输入账号密码登陆,实现步骤较为复杂,登陆后抓取cookies,在后续操作中使用cookies登陆是一种较为简便的方法。
因此,本文使用python3 + chromedriver,帮助完成cookies的抓取。
需要安装python3环境,安装selenium和json包,并下载对应版本的chromedriver
from selenium import webdriver
import json
options = webdriver.ChromeOptions()
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
driver = webdriver.Chrome(options=options, executable_path='./chromedriver')
url = "about:blank"
driver.get(url)
# 此时浏览器已经打开,在浏览器中打开网页并登陆
filename = input("cookie文件名:") + ".cookies" # 输入cookie文件名
# 开始写入cookie
cookies = driver.get_cookies()
jsonCookies = json.dumps(cookies)
with open(filename,'w') as f:
f.write(jsonCookies)
driver.close() # 写入完成后,关闭浏览器
使用方法
- 安装python3和相关库,下载chromedriver并放在同一目录下
- 运行代码
- 在打开的浏览器中打开所要获取cookie的页面,并登陆
- 在命令窗口输入保存cookie名并回车
- 写入cookie完成后,程序自动退出
其他
本方法只是获取cookie诸多方法中比较麻烦的一种,其好处在于生成的就是cookie文件,下次使用时可以通过代码直接调用,其他通过控制台、通过浏览器插件、抓包等方式获取cookie的思路也非常可取,可以根据需要选择最方便好用的方法。