Python爬虫request三方库实战

发布于:2025-07-04 ⋅ 阅读:(17) ⋅ 点赞:(0)

前言

我们Python爬虫的第一步通过各种手段获取网页上面的响应数据作为分析数据的原材料。

Python的request三方库是一个发送HTTP请求的工具库,是我们Python爬虫获取网页上面的响应数据的核心库,通过发送HTTP请求,可以很方便的获取到网页上面的响应数据。

使用request三方库发送HTTP请求和响应,首先需要对网页上面的HTTP请求的知识进行详细了解

目录

HTTP 网络请求和响应

HTTP网络请求

请求行

请求头Request Headers    很重要一般反爬措施在这里

请求体

HTTP网络响应

响应行

响应头Response Headers   不是重点了解即可

request请求的Python代码示例


HTTP 网络请求和响应

下面我列举Python爬虫常用的HTTP网络请求和响应的参数进行记录,快速入门并且满足日常需求

因为HTTP网络请求和响应参数很多,特殊参数没必要每个都了解,具体遇到了再具体进行分析

如果想要深入了解,请学习《计算机网络》这门课程

HTTP网络请求

请求行

请求方法                      分为GET和POST

URL                             请求的目标资源地址,就是常说的请求路径

HTTP协议版本            HTTP协议经历了多个版本的演进,所以要指定HTTP版本

请求头Request Headers    很重要一般反爬措施在这里

User-Agent                 用户代理

        作用是告诉服务器发起请求的浏览器、操作系统、设备类型等

        User-Agent: <产品名称/版本> (<系统信息>) <扩展信息>

        举个例子

        User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36

        Mozilla/5.0:历史遗留标识(兼容性标记)

        Windows NT 10.0:操作系统为 Windows 10

        Chrome/138.0.0.0:浏览器为 Chrome 138

        Safari/537.36:基于 WebKit 引擎(Chrome 和 Safari 共用)

        这个参数是比较重要的,服务器通过检查 User-Agent 判断是否为爬虫(如 Python 的 requests 库默认 User-Agent 会被识别为爬虫)。服务器根据 User-Agent 返回移动端或桌面端页面。还有统计用户使用的浏览器和设备分布的作用。

Referer                       告诉服务器用户是从那个页面跳转过来的

        直接访问或书签打开可以为空,但是某些网站会通过 Referer 判断是否为爬虫,在必要得时候还是需要填写一个合理的值的

Cookie                         会话信息,用于在多次请求间传递会话信息,如记录登录信息

请求体

        就是发送请求的数据,常见的有键值对格式(Form Data)和Json格式(JOSN Data)

HTTP网络响应

响应行

响应码                       就是请求结果的状态 2xx就是成功

HTTP协议版本            HTTP协议经历了多个版本的演进,所以要指定HTTP版本

响应头Response Headers   不是重点了解即可

Content-Encoding      响应体的编码
Content-Type             响应体的类型     这个参数决定响应体是HTML文件、json文件、图片还是视频
Server                        请求服务器信息
Date                           日期

响应体

        就是发送请求的响应数据,数据格式由响应请求头决定

Request三方包模拟真人请求

在请求头Request Headers里面加上

User-Agent                 用户代理

Referer                       告诉服务器用户是从那个页面跳转过来的

这两个是反爬最常用的手段,在浏览器上面自己去找对应的值就可以了,放到request的header里面

request请求的Python代码示例

import requests

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36"
}
url = 'https://www.baidu.com/'
response = requests.get(url,headers=headers)
#设置响应体编码
response.encoding = "UTF-8"
print(response.text)

 


网站公告

今日签到

点亮在社区的每一天
去签到