python requests的基本使用

简介: 使用python的requests库快速发起http请求,获取采集数据。

一、安装

  • pip快速安装
pipinstallrequests

二、使用方法

1)导入模块

importrequests

2)发送请求

  • 示例get请求:以百度搜索get请求为例
importrequests# 参数直接拼接到url的get请求r1=requests.get('https://www.baidu.com/s?wd=hello%20world')   
# 参数放到params的get请求(两种get请求方法最终发送的url都是https://www.baidu.com/s?wd=hello%20world)r2=requests.get(url='https://www.baidu.com/s', params={'wd': 'hello%20world'})
  • 常用请求方式
# GET请求requests.get('https://code_space/get') 
# POST请求requests.post('https://code_space/post')  
# PUT请求requests.put('https://code_space/put')
# DELETE请求requests.delete('https://code_space/delete')

3)定制头和cookie信息

cookie= {'key': 'value'}
header= {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "zh-CN,zh;q=0.9",
"Connection": "keep-alive",
"Content-Type": "application/json",
"Host": "ug.baidu.com",
"Origin": "https://www.baidu.com",
"Referer": "https://www.baidu.com/s?ie=UTF-8&wd=hello%20world",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36"}
r=requests.get('https://www.baidu.com/s?wd=hello%20world',headers=header,cookies=cookie)

4)获取响应

r.encoding                     # 获取当前的编码
r.encoding = 'utf-8'       # 设置编码
r.text                              # 以encoding解析返回内容。字符串方式的响应体,会自动根据响应头部的字符编码进行解码。
r.content                        # 以字节形式(二进制)返回。字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩。
r.headers                       # 以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回None
r.status_code                 # 响应状态码
r.raw                              # 返回原始响应体,也就是 urllib 的 response 对象,使用 r.raw.read()   
r.ok                               # 查看r.ok的布尔值便可以知道是否登陆成功
 #*特殊方法*#
r.json()                          #Requests中内置的JSON解码器,以json形式返回,前提返回的内容确保是json格式的,不然解析出错会抛异常
r.raise_for_status()        #失败请求(非200响应)抛出异常
  • 使用requests方法后,会返回一个response对象,其存储了服务器响应的内容,如上实例中已经提到的 r.text、r.status_code……
  • 获取文本方式的响应体实例:当你访问 r.text 之时,会使用其响应的文本编码进行解码,并且你可以修改其编码让 r.text 使用自定义的编码进行解码。

三、测试demo

# -*- coding: utf-8 -*-"""@Time : 2022/1/16 16:15@Auth : 技术空间@File :requests_demo.py@IDE :PyCharm@Motto:技术总是要日积月累的"""importrequestsif__name__=='__main__':
r1=requests.get('https://www.baidu.com/s?wd=hello%20world')
cookie= {'key': 'value'}
header= {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "zh-CN,zh;q=0.9",
"Connection": "keep-alive",
"Content-Type": "application/json",
"Host": "ug.baidu.com",
"Origin": "https://www.baidu.com",
"Referer": "https://www.baidu.com/s?ie=UTF-8&wd=hello%20world",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) ""AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36"    }
r2=requests.get('https://www.baidu.com/s?wd=hello%20world', headers=header, cookies=cookie)
print("r1的status_code-->"+str(r1.status_code))
print(r1.text)
print("r2的status_code-->"+str(r1.status_code))
print(r2.text)

34b879fd8a3b47e2b66afa3aaa843eb2.pngb5b39dbd454144cb9eb430b3446a4ea2.png

相关文章
|
5天前
|
网络协议 数据库连接 Python
python知识点100篇系列(17)-替换requests的python库httpx
【10月更文挑战第4天】Requests 是基于 Python 开发的 HTTP 库,使用简单,功能强大。然而,随着 Python 3.6 的发布,出现了 Requests 的替代品 —— httpx。httpx 继承了 Requests 的所有特性,并增加了对异步请求的支持,支持 HTTP/1.1 和 HTTP/2,能够发送同步和异步请求,适用于 WSGI 和 ASGI 应用。安装使用 httpx 需要 Python 3.6 及以上版本,异步请求则需要 Python 3.8 及以上。httpx 提供了 Client 和 AsyncClient,分别用于优化同步和异步请求的性能。
python知识点100篇系列(17)-替换requests的python库httpx
|
12天前
|
存储 网络协议 API
详解Python中的Requests会话管理
详解Python中的Requests会话管理
|
28天前
|
JSON API 数据格式
30天拿下Python之requests模块
30天拿下Python之requests模块
34 7
|
29天前
|
API Python
使用Python requests库下载文件并设置超时重试机制
使用Python的 `requests`库下载文件时,设置超时参数和实现超时重试机制是确保下载稳定性的有效方法。通过这种方式,可以在面对网络波动或服务器响应延迟的情况下,提高下载任务的成功率。
93 1
|
1月前
|
测试技术 API Python
Python中requests、aiohttp、httpx性能对比
这篇文章对比了Python中三个流行的HTTP客户端库:requests、aiohttp和httpx,在发送HTTP请求时的性能,并提供了测试代码和结果,以帮助选择适合不同应用场景的库。
64 2
|
1月前
|
数据采集 JSON API
🎓Python网络请求新手指南:requests库带你轻松玩转HTTP协议
本文介绍Python网络编程中不可或缺的HTTP协议基础,并以requests库为例,详细讲解如何执行GET与POST请求、处理响应及自定义请求头等操作。通过简洁易懂的代码示例,帮助初学者快速掌握网络爬虫与API开发所需的关键技能。无论是安装配置还是会话管理,requests库均提供了强大而直观的接口,助力读者轻松应对各类网络编程任务。
99 3
|
14天前
|
监控 安全 中间件
Python requests 如何避免被 Gzip 炸弹攻击
Python requests 如何避免被 Gzip 炸弹攻击
20 0
|
1月前
|
机器学习/深度学习 JSON API
HTTP协议实战演练场:Python requests库助你成为网络数据抓取大师
在数据驱动的时代,网络数据抓取对于数据分析、机器学习等至关重要。HTTP协议作为互联网通信的基石,其重要性不言而喻。Python的`requests`库凭借简洁的API和强大的功能,成为网络数据抓取的利器。本文将通过实战演练展示如何使用`requests`库进行数据抓取,包括发送GET/POST请求、处理JSON响应及添加自定义请求头等。首先,请确保已安装`requests`库,可通过`pip install requests`进行安装。接下来,我们将逐一介绍如何利用`requests`库探索网络世界,助你成为数据抓取大师。在实践过程中,务必遵守相关法律法规和网站使用条款,做到技术与道德并重。
41 2
|
15天前
|
Python 容器
AutoDL Python实现 自动续签 防止实例过期释放 小脚本 定时任务 apscheduler requests
AutoDL Python实现 自动续签 防止实例过期释放 小脚本 定时任务 apscheduler requests
16 0
|
1月前
|
数据采集 存储 JSON
从零到一构建网络爬虫帝国:HTTP协议+Python requests库深度解析
在网络数据的海洋中,网络爬虫遵循HTTP协议,穿梭于互联网各处,收集宝贵信息。本文将从零开始,使用Python的requests库,深入解析HTTP协议,助你构建自己的网络爬虫帝国。首先介绍HTTP协议基础,包括请求与响应结构;然后详细介绍requests库的安装与使用,演示如何发送GET和POST请求并处理响应;最后概述爬虫构建流程及挑战,帮助你逐步掌握核心技术,畅游数据海洋。
61 3