Python爬虫 | 反爬机制:Cookie | cookie反反爬策略,cookie反爬如何解决,cookie反爬处理,cookie反爬虫,获取浏览器cookies绕过反爬虫

在这里插入图片描述

示例网站:雪球首页

示例网站展示:

雪球首页

目的:获取热帖热帖的标题及内容

右键检查一顿判断,找到需要的包,在此不再赘述,下边代码如不理解,可以看之前的博客,详细阐述了如何通过浏览器抓包。(反爬机制:懒加载

# 爬取一页当中的15条数据
import requests
headers  = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4292.2 Safari/537.36'
}
# sess = requests.Session()
# sess.get(url = 'https://xueqiu.com/',headers=headers)
url = 'https://xueqiu.com/statuses/hot/listV2.json?since_id=-1&max_id={}&size=15'
page_json = requests.get(url=url.format(132899-page*15),headers=handers).json()
print(page_json)

返回:
{‘error_description’: ‘遇到错误,请刷新页面或者重新登录帐号后再试’, ‘error_uri’: ‘/statuses/hot/listV2.json’, ‘error_data’: None, ‘error_code’: ‘400016’}

有些不太对劲,之前别的网站这样请求之后可以获取到数据,这个网站获取不到了,说明请求模拟的不像,被服务器发现了,查看这个请求信息,里面还有一堆 Cookie 代码中并没有模拟(不知道这一大串 Cookie 表示的什么,所以乱打了一通)

在这里插入图片描述
在网页的 Cookies 中找到了请求发的这些数据,这些数据是在第一次请求雪球网站的时候写入进去的。
所以在代码当中需要先请求首页将 Cookies 获取到,然后携带 Cookies 发送给服务器请求页面详情数据。

在这里插入图片描述

如何实现携带 Cookie 发送请求?

在这里插入图片描述

1. 将 Cookies 数据粘贴到代码的 headers 字典中

这种方法有弊端,Cookies 的值是不断变化的,如果一粘了之,Cookies 变化了,代码就得停下来重新改。

2. 使用 requests.Session()

  1. 创建一个实例化对象
programmer_plus = requests.Session()
  1. 使用实例化对象对网站发起请求
# 实例化对象会保存 response 返回的Cookie
programmer_plus.get(url = index ,headers=headers)
  1. 请求真正获取数据的 URL
page_json = programmer_plus..get(url=url,headers=handers).json()

雪球页面爬取代码

import requests
headers  = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4292.2 Safari/537.36'
}
sess = requests.Session()
sess.get(url = 'https://xueqiu.com/',headers=headers)
url = 'https://xueqiu.com/statuses/hot/listV2.json?since_id=-1&max_id={}&size=15'
for page in range(1):
    page_json = sess.get(url=url.format(132899-page*15),headers=handers).json()
    for item in page_json['items']:
        print('标题:',item['original_status']['title'])
        print('内容:',item['original_status']['text'])
        print()
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿过家家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值