可狱可囚的爬虫系列课程 05:Requests爬虫基础伪装

前面在讲 Requests 这个模块的使用时,我们是以没有反爬的 Requests 模块官网为例进行的请求练习,但是平时爬取的很多网站或多或少都会有反爬虫机制的存在,今天我们带大家学习一个爬虫的简单伪装。

一、什么是请求头 Headers

HTTP 请求头,简称请求头,是 HTTP 协议传输过程中规定的一系列键值对,它用来描述客户端的环境信息、请求偏好等。请求头是 HTTP 请求的一部分,包含了操作系统、浏览器类型、请求方法(GET、POST 等)、语言等信息。服务器根据这些信息来处理请求并生成适当的响应。

二、请求头与 Requests 结合

我们说请求头中包含了操作系统、浏览器类型等一系列信息,那么我们前面写的 Requests 发送请求的代码是没有请求头的,所以目标服务器收到请求以后有合理的理由来判定收到的这个请求不正常,可以把请求拒绝掉,返回给我们就是我们所说的 403、418 等状态码,所以爬虫伪装是非常重要的。
我们先找一个网站,来尝试请求一下,使用豆瓣电影 Top250 排行榜:https://movie.douban.com/top250

import requests

URL = 'https://movie.douban.com/top250'
response = requests.get(url=URL)
print("状态码:", response.status_code)

# 状态码:418

上面的代码大家很熟悉了,返回的结果为 418,这个状态码我们在可狱可囚的爬虫系列课程 02:爬虫必会概念这篇文章中讲到过,此处就不再赘述,直接给大家说原因及解决办法:豆瓣电影 Top250 认为我们发出去的请求是一个爬虫,并非正常用户的请求,那么我们只需要借助请求头 Headers 中的 User-Agent 字段即可解决。直接给大家上代码,一会再解释:

import requests

URL = 'https://movie.douban.com/top250'
Headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36'
}
response = requests.get(url=URL, headers=Headers)
print("状态码:", response.status_code)

# 状态码:200

大家看上述代码,我将请求头 Headers 这个字典与 Requests 进行了结合,在 Requests 发送请求时携带上 Headers,Headers 中借助了 User-Agent 这个键值对,User-Agent 是做什么的呢?
User-Agent 是用户代理,简称“UA”,它是一个特殊字符串头。网站服务器通过识别“UA”来确定用户所使用的操作系统版本、CPU 类型、浏览器版本等信息。 简言之我们借助这个 User-Agent 来将爬虫伪装成正常用户从而骗过网站服务器。
User-Agent 这个键对应的值大家不用记忆,我告诉大家怎么找。

三、如何找 UA

第一步:随便找一个网站,在浏览器中打开的这个网站界面上“右键”,选择“检查”选项打开“开发者工具”(程序员推荐使用谷歌浏览器、火狐浏览器等专业浏览器)。

在这里插入图片描述
在这里插入图片描述
第二步:在开发者工具的工具栏有一个“Network”的选项,切换过去。
第三步:第二步完成以后你还看不到界面上的内容,此时 Network 窗口下是空白的,我们需要不关闭开发者工具情况下刷新页面,监听到页面加载的内容。

在这里插入图片描述
在这里插入图片描述
第四步:监听到的文件随便点击一个,在右侧弹出来的窗口中找到“Headers”标签,滚动到最下方,你就能看到 User-Agent 了,然后复制下图中红色椭圆区域的内容即可。
注意:并不是每一个文件一定有 User-Agent,一个文件没有换下一个。
在这里插入图片描述

  • 19
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
引用中提到,网络爬虫是一种程序,其主要目的是将互联网上的网页下载到本地并提取相关数据。而requests是一个常用的Python库,用于发送 HTTP 请求并获取响应数据。requests库可以用于编写爬虫程序,通过发送请求获取网页内容,并对获取的数据进行处理和提取。在爬虫中,可以使用requests库发送GET请求或POST请求,设置请求头部信息,模拟浏览器行为,以避免被网站的反爬虫机制检测到。引用中提到,网站服务器通常通过读取请求头部的用户代理信息来判断请求是否来自正常的浏览器还是爬虫程序。为了伪装成正常的浏览器,可以在请求头部添加User-Agent信息,即模拟浏览器的User-Agent字段。在引用的代码示例中,headers参数中包含了User-Agent字段,可以通过设置该字段来模拟浏览器请求。这样做可以增加请求的合法性,减少被网站屏蔽的风险。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [网络爬虫Requests库详解(含多个案例)](https://blog.csdn.net/Dream_Gao1989/article/details/124139669)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [requests爬虫](https://blog.csdn.net/weixin_42567027/article/details/130807100)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

HerrFu

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

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

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

打赏作者

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

抵扣说明:

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

余额充值