目标:
    1:掌握Cookie是什么并且有什么用
    2:掌握怎么用Python程序实现Cookie模拟登陆(好几种方法)


    一:Cookie是什么并且有什么用

    Cookie适用场景:抓取需要登录才能获取数据的网站

    答:当客户端向需要登录的网站服务器发送请求时,当登录成功后,服务器会给浏览器分发一段不超过4k大小的Cookie文本(浏览器将Cookie保存起来),服务器自身保存一段session文本,浏览器保存的Cookie相当于一个身份证,当你在向这个网站的其他页面发送请求时,会携带保存的Cookie,服务器会将浏览器发送请求时携带的Cookie与自身的session进行比对,比对成功后,放行(可以访问这个网站的其他页面),比对失败不放行(需要重新登录!)

    二:怎么用 Python程序实现Cookie模拟登陆(好几种方法)

    第一种方法:暴力模拟登录——手动查找 Cookie,将 Cookie 充当请求标头内 headers 的一个参数

    第一步:浏览器打开需要登录的网站,先登录一次

    image.png

    第二步:登录成功后进入到待抓取数据的页面

    image.png

    第三步:按下F12找到网络选项,刷新页面,找到所有包里面的第一个包(一般是第一个包,主要是看这个包请求的url与目标url是否相同)

    image.png

    第四步:找到这个包里面请求信息(请求标头)的Cookie,复制

    image.png

    第五步:打开 pycharm 写程序发送请求

    image.png


    模拟Cookie登录的第二种方法——Cookies参数方式

    方法:将手动抓取登录后的 Cookie 作为 requests 模块发送get请求的 cookies 参数传入

    参数类型:字典 需要将抓取的cookie字符串处理为字典才能传参

    语法:requests.get(url=url,headers=headers,cookies=cookies) 其中cookies 就是处理好的 cookie字典

    注意事项:手动抓取登录后的cookie和第一种方法抓取的一样!

    截图:

    image.png

    将cookie字符串处理为cookies参数

    image.png


    第三种方法:requests模块的session类实现Cookie模拟登录

    语法:

    s = requests.session()创建session对象

    s.post(url = url,headers = headers,data = data) 向登录网站的接口发送请求(get或者是post请求具体分析),进行登录网站

    html = s.get(url = url,headers = headers).text 上一步成功实现后,s 对象就是已经携带了登录成功的Cookie并保持会话,我们这是就可以向登录成功的任何页面发送请求获取数据了