Python爬虫:cookie和session对象。爬取某球网中的网页代码数据

Python爬虫:cookie和session对象。爬取某球网中的网页代码数据

什么是cookie?

是存储在客户端的一组键值对

web中cookie的典型应用:登陆请求

Python爬虫:cookie和session对象。爬取某球网中的网页代码数据

cookie和爬虫之间的关联:

sometime,对一张页面进行请求的时候,如何请求的过程中不携带cookie的话,那么我们是无法请求到正确的页面数据。因此cookie是爬虫中一个非常典型且常见的反爬机制


还是照旧,我们以实际例子看下:

需求:爬取某球网中的网页数据。

正常思路分析:

  1. 判定爬取的咨询数据是否为动态加载数据
  2. 此网页下滑可以更新数据,不用分析都知道肯定是这个动态加载数据的。
  3. 相关的更多咨询数据是动态加载的,滚轮滑动到底部的时候会动态加载更多的数据
  4. 那我们就定位到ajax请求的数据表,提取出请求的url,响应的数据为json形式的数据

Python爬虫:cookie和session对象。爬取某球网中的网页代码数据

代码实现:

import requests
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36'
}
url = 'https://xueqiu.com/statuses/hot/listV2.json?since_id=-1&max_id=258231&size=15'
page_text = requests.get(url=url, headers=headers).json()
print(page_text)

爬取结果:

Python爬虫:cookie和session对象。爬取某球网中的网页代码数据

额,直接就打印个错误!那看来用我们以往的正常方式爬取是不行的


cookie处理

上面的问题:我们没有请求到我们想要的数据

原因:我们没有严格意义上模拟浏览器发请求

Python爬虫:cookie和session对象。爬取某球网中的网页代码数据

我们发现,请求头跟之前学习的网站不一样。这个请求头里有很多内容,尤其是cookie比较多,那么可以确定,这个地址是需要携带cookie才可以访问的。

处理:可以将浏览器发请求携带的请求头,全部粘贴在headers字典中,将headers坐拥到requests的请求操作中即可

处理之前,先介绍下 cookies的处理的方式:

  • 方式1:手动处理:

1. 将抓包工具中的cookie粘贴在headers中

2. 弊端:cookie如何获得有效市场则该方式失效

这种方式虽然简单有效,但众所周知,cookie是有有效期的。比如:我们登陆了一个网站,长时间不去再次登陆的话,浏览器就不会自动登陆了。

这种方式适合短暂爬取数据比较方便。

  • 方式2:自动处理

1. 基于session对象实现自动处理

如何获取一个Session对象:requeste.Session()返回一个session对象

2. session对象的作用:

该对象可以向requests一样调用get和post发起指定的请求。

只不过如果在使用session发请求的过程中如果产生了cookie,则cookie会被自动存储到该session对象中,那么就意味着下次在使用session对象发起请求,则该次请求就是携带cookie进行的请求发送。


在爬虫中使用session的时候,session对象至少会被使用几次?

两次,第一次使用session是为了将cooike捕获存储到session对象中。 下次的时候就是携带cookie进行的请求发送

我们来重写下上面的代码:

import requests
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36'
}
# 创建session对象
session = requests.Session()
# 第一次使用session捕获且存储cookies,猜测对某球网的首页发起的请求可能会产生cookie
main_url = 'https://xueqiu.com/'
session.get(url=main_url, headers=headers) # 捕获且存储cookie
url = 'https://xueqiu.com/statuses/hot/listV2.json?since_id=-1&max_id=258231&size=15'
page_text = session.get(url=url, headers=headers).json() # 携带cookie发起的请求
print(page_text)

果然,我们爬取到了数据!

cookie是最常见的反爬机制之一,我们一定要熟悉分析和写作。

关注 Python涛哥,学习更多Python知识!

以上内容来源于网络,由“WiFi之家网”整理收藏!

原创文章,作者:电脑教程,如若转载,请注明出处:https://www.224m.com/225895.html

(0)
电脑教程电脑教程
192.168.1.1路由器设置地址(光猫路由一体网关连接路由器设置)
上一篇 2023年2月22日 08:43
极路由2拆解评测 极路由极贰拆解图文详细教程
下一篇 2023年2月22日 08:56

相关推荐

  • 网线可以直接插电脑吗(图文)

    【导读】网线可以直接插电脑吗,下面就是WiFi之家网整理的网络知识百科,来看看吧!大家好,我是191路由器网小编,上述问题将由我为大家讲解。是可以的,直接将网线安装在电脑中的网卡上,然后打开电脑系统桌面

    2021年7月20日
    74.8K
  • 192.168.0.1路由器设置官网

    本文目录192.168.0.1路由器设置官网?手机怎么设置路由器?手机登陆192.168.1.1方法是什么?手机一连接路由器无线就跳到192.168.0.1,怎么办?路由器怎么设置用户名和密码190.168.0.1?手机怎么设置192.168.01路由器?192.168.0.1路由器设置官网?192.168.0.1是局域网IP地址,一般是腾达、TP-LINK等

    192.168.0.1 2022年11月20日
    33.3K
  • 罗技无线键盘鼠标哪个型号好 无线键盘鼠标套装推荐

    原标题:" 无线到极致的罗技无线键盘鼠标"关于路由器设置教程分享。 - 来源:WiFi之家网 - 编辑:小元。
    无线连接的便捷性,是无线产品越来越受到欢迎的原因。对键盘鼠标来说,无线"

    2021年2月9日
    27.2K
  • tplink路由器管理员密码忘了怎么办?

    图文教程:1、输入你的tplink路由器的wifi密码,看一下能不能登录到设置界面?2、如果用wifi密码登录失败,那就只能把你的tplink路由器恢复出厂设置,具体的操作方法是:在路由器接通电源的状态的,按住Reset复位按键不要松开,然后观察路由器上指示灯的状态,当指示灯重新闪烁时松开复位按键,

    2021年6月15日
    13.5K
  • 中兴路由器进不去设置页面(中兴路由器app官网)

    中兴路由器进不去设置页面(中兴路由器app官网) 中兴路由器是一款高性能的家庭网络產品,它可以让我们更方便地上网、分享文件、打印机等网络资源。不过有时候我们可能会遇到一些问题,比如…

    网络 2025年3月26日
    5.9K
  • 移动猫上LOS闪红灯什么意思

    移动猫上LOS闪红灯代表着收不到光缆上发来的光信号或收光信号功率过低,光缆故障(包括分光器坏)等。这可能是由于您的光纤接口、运营商的光纤出现问题,无法自行解决。接下来详细介绍:  …

    常见问题 2020年11月13日
    16.7K
  • 华为路由器登陆用户名和密码忘了的解决方法

    华为路由器登陆用户名和密码忘了怎么办?家里的华为路由器用了很长一段时间了,今天想登录到设置界面,重新设置路由器。登录的时候提示需要用户名和密码,但是自己已经忘记了用户名和密码,该

    2021年3月7日
    33.2K
  • 无线网络路由器MAC地址过滤的设置方法

    无线网络MAC地址过滤的设置方法,即无线MAC地址过滤的设置方法;通过设置无线MAC地址过滤,可以控制无线设备接入到无线网络的权限;如果无线设备的MAC地址被过滤掉了,则将无法访问本无线网络,即

    2021年3月3日
    37.5K
  • 192.168.8.1手机登陆 192.168.1.1手机登录路由器页面

    【导读】192.168.1.1手机登录路由器页面,下面就是191路由器网小编整理的192.168.1.1设置教程。有不少用户家里没有电脑,想用手机登录192.168.1.1对路由器进行一些设置,比如修改"

    2021年1月2日
    9.3K
  • 竞斗云路由器默认登录设置(竞斗云路由器)

    竞斗云路由器默认登录设置(竞斗云路由器) 竞斗云路由器是一款性能出色的路由器设备,它可以为用户提供高速稳定的上网体验。如果您是竞斗云路由器的用户,那么在使用过程中需要进行默认登录设…

    网络 2023年12月22日
    824