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

相关文章
|
2月前
|
存储 Web App开发 前端开发
Python + Requests库爬取动态Ajax分页数据
Python + Requests库爬取动态Ajax分页数据
|
2月前
|
Web App开发 安全 数据安全/隐私保护
利用Python+Requests实现抖音无水印视频下载
利用Python+Requests实现抖音无水印视频下载
|
2月前
|
JSON 网络安全 数据格式
Python网络请求库requests使用详述
总结来说,`requests`库非常适用于需要快速、简易、可靠进行HTTP请求的应用场景,它的简洁性让开发者避免繁琐的网络代码而专注于交互逻辑本身。通过上述方式,你可以利用 `requests`处理大部分常见的HTTP请求需求。
275 51
|
2月前
|
数据采集 API 调度
Python爬虫框架对比:Scrapy vs Requests在API调用中的应用
本文对比了 Python 中 Scrapy 与 Requests 两大爬虫框架在 API 调用中的差异,涵盖架构设计、调用模式、性能优化及适用场景,并提供实战建议,助力开发者根据项目需求选择合适工具。
|
4月前
|
网络协议 API 开发者
分析http.client与requests在Python中的性能差异并优化。
合理地选择 `http.client`和 `requests`库以及在此基础上优化代码,可以帮助你的Python网络编程更加顺利,无论是在性能还是在易用性上。我们通常推荐使用 `requests`库,因为它的易用性。对于需要大量详细控制的任务,或者对性能有严格要求的情况,可以考虑使用 `http.client`库。同时,不断优化并管理员连接、设定合理超时和重试都是提高网络访问效率和稳定性的好方式。
120 19
|
3月前
|
JSON 数据格式 Python
解决Python requests库POST请求参数顺序问题的方法。
总之,想要在Python的requests库里保持POST参数顺序,你要像捋顺头发一样捋顺它们,在向服务器炫耀你那有条不紊的数据前。抓紧手中的 `OrderedDict`与 `json`这两把钥匙,就能向服务端展示你的请求参数就像经过高端配置的快递包裹,里面的商品摆放井井有条,任何时候开箱都是一种享受。
89 10
|
3月前
|
网络协议 API Python
解析http.client与requests在Python中的性能比较和改进策略。
最后,需要明确的是,这两种库各有其优点和适用场景。`http.client` 更适合于基础且并行的请求,`requests` 则因其易用且强大的功能,更适用于复杂的 HTTP 场景。对于哪种更适合你的应用,可能需要你自己进行实际的测试来确定。
113 10
|
3月前
|
XML JSON 安全
分析参数顺序对Python requests库进行POST请求的影响。
最后,尽管理论上参数顺序对POST请求没影响,但编写代码时仍然建议遵循一定的顺序和规范,比如URL总是放在第一位,随后是data或json,最后是headers,这样可以提高代码的可读性和维护性。在处理复杂的请求时,一致的参数顺序有助于调试和团队协作。
125 9
|
9月前
|
JSON 数据可视化 测试技术
python+requests接口自动化框架的实现
通过以上步骤,我们构建了一个基本的Python+Requests接口自动化测试框架。这个框架具有良好的扩展性,可以根据实际需求进行功能扩展和优化。它不仅能提高测试效率,还能保证接口的稳定性和可靠性,为软件质量提供有力保障。
426 7

热门文章

最新文章

推荐镜像

更多