首先让我们来理解下什么是Cookie:
Cookie指某些网站为了辨别用户身份、从而储存在用户本地终端上的数据。当客户端在第一次要求网站指定的首页或登录页进行登录之后,做事器端会返回一个Cookie值给客户端。如果客户端为浏览器,将自动将返回的cookie存储下来。当再次访问改网页的其他页面时,自动将cookie值在Headers里通报过去,做事器接管值后进行验证,如合法处理要求,否则谢绝要求。
举个例子我们要去微博爬取干系数据,首先我们会碰着登录的问题,当然我们可以利用python其他的功能模块进行仿照登录,这里可能会涉及到验证码等一些反爬手段。

换个思路,我们登录好了,通过开拓者工具“右击” 检讨(或者按F12) 获取到对应的cookie,那我们就可以绕个登录的页面,利用cookie连续用户仿照操作从而直接进行操作了。
利用cookie实现仿照登录的两种方法:
将cookie插入Headers要求头 Headers={"cookie":"复制的cookie值"}将cookie直接作为requests方法的参数cookie={"cookie":"复制的cookie值"}requests.get(url,cookie=cookie)
三、利用selenium获取cookie,实现用户仿照登录
实现方法:利用selenium仿照浏览器操作,输入用户名,密码 或扫码进行登录,获取到登录的cookie保存成文件,加载文件解析cookie实现用户仿照登录。
from selenium import webdriverfrom time import sleepimport json#selenium仿照浏览器获取cookiedef getCookie: driver = webdriver.Chrome() driver.maximize_window() driver.get('https://weibo.co m/login.php') sleep(20) # 留韶光进行扫码 Cookies = driver.get_cookies() # 获取list的cookies jsCookies = json.dumps(Cookies) # 转换成字符串保存 with open('cookies.txt', 'w') as f: f.write(jsCookies) def login: filename = 'cookies.txt' #创建MozillaCookieJar实例工具 cookie = cookiejar.MozillaCookieJar() #从文件中读取cookie内容到变量 cookie.load(filename, ignore_discard=True, ignore_expires=True) response = requests.get('https://weibo.co m/login.php',cookie=cookie)
四、拓展思考
如果频繁利用一个账号进行登录爬取网站数据有可能导致做事器检讨到非常,对当前账号进行封禁,这边我们就须要考虑cookie池的引入了。