一文入门 request请求库使用

requests 库是一个非常流行的 Python HTTP 请求库,简化了与 web 服务器的交互。它提供了简洁的 API 来发送 HTTP 请求和处理响应。

常用来处理爬虫过程中对对网络响应的包装和解析

一,安装requests包

在pycharm 的终端上通过指令

pip install requests 安装

python 复制代码
pip install requests 

二,使用request 解析网络数据

一,导入模块

python 复制代码
import requsets

二,向网站发起 get 请求

1.方法requests.get()

2.状态码为200,则请求成功

3.requests 有三种解码形式

text 以文本的形式返回响应信息

content 可以通过指定的解码格式来解码

json()不仅对响应解码,还对其进行反序列化

python 复制代码
url = f'https://tieba.baidu.com'

res = requests.get(url)

print(res)  # 状态码为200,则请求成功

res.content.decode(encoding='gbk')# 指定解码格式

print(res.text)# 返回请求网站的文本信息
con = res.json()
for data in con['data']['forum_info']:
    print(data)

4.get 方法的参数

params ,**kwargs

python 复制代码
params = {
    'pn': 1,
    'size': 20
}
通过定义params,可以向服务器请求具体的位置和内容
例如:请求第十页的20个内容
python 复制代码
user-agent 发起请求的工具 需要伪装,不然会被服务器识别到,影响爬取成功率
在requests.get()中,通过指定headers 来伪装造假请求
伪造请求头
headers = {
     'user-agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36"}

 res = requests.get(url, headers=headers, params=params)

 for k, v in res.json().items():
     print(k, v)

三,发起post请求

1.发送data数据

python 复制代码
# 要发送的数据(表单格式)
data = {
    'username': 'user1',
    'password': 'pass123'
}

# 发送 POST 请求
response = requests.post('https://example.com/login', data=data)

# 检查请求是否成功
if response.status_code == 200:
    print('Response Text:', response.text)
else:
    print('Failed to send data:', response.status_code)

2.发送json数据

python 复制代码
# 要发送的数据(JSON 格式)
data = {
    'name': 'Alice',
    'age': 30
}

# 发送 POST 请求
response = requests.post('https://example.com/api', json=data)

# 检查请求是否成功
if response.status_code == 200:
    print('Response JSON:', response.json())
else:
    print('Failed to send data:', response.status_code)

根据网站的请求类型的不同,使用不同的数据发送

相关推荐
灯澜忆梦6 小时前
GO_并发编程---定时器
开发语言·后端·golang
-银雾鸢尾-6 小时前
C#中的StringBuilder相关方法
开发语言·c#
-银雾鸢尾-6 小时前
C#中结构体与类的区别;抽象类与接口的区别
开发语言·c#
大模型码小白7 小时前
【Python零基础教程】继承、多态与魔法函数:面向对象编程三大核心特性详解
java·大数据·开发语言·人工智能·python·ai编程
段一凡-华北理工大学9 小时前
向量数据库实战:选型、调优与落地~系列文章12:文本分块策略实战:chunk_size 怎么选?重叠多少?
开发语言·数据库·后端·oracle·rust·工业智能体·高炉智能化
Ljwuhe9 小时前
C++——多态
开发语言·c++
心平气和量大福大10 小时前
C#-WPF-Window主窗体
开发语言·c#·wpf
从零开始的代码生活_12 小时前
C++ 继承详解:访问控制、对象模型、菱形继承与设计取舍
开发语言·c++·后端·学习·算法
云小逸12 小时前
【C++ 第七阶段:模板、泛型编程与工程综合详解】
开发语言·c++
GIS阵地12 小时前
QgsSingleBandPseudoColorRenderer 完整详解(QGIS 3.40.13 C++)
开发语言·前端·c++·qt·qgis