前言
我们Python爬虫的第一步通过各种手段获取网页上面的响应数据作为分析数据的原材料。
Python的request三方库是一个发送HTTP请求的工具库,是我们Python爬虫获取网页上面的响应数据的核心库,通过发送HTTP请求,可以很方便的获取到网页上面的响应数据。
使用request三方库发送HTTP请求和响应,首先需要对网页上面的HTTP请求的知识进行详细了解
目录
请求头Request Headers 很重要一般反爬措施在这里
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)