python请求库之requests
一、简介
requests使用了urllib3的库,并且继承了所有urllib2的特性,最关键的是它不需要urllib3一样在编码时收到开启线程池,简单粗暴,它比 urllib 更加方便,可以节约大量的工作,完全满足 HTTP 测试需求。可以通过如下命令安装:
pip install requests
导包命令如下:
import requests
二、基本语法
1、get请求
常用参数:
示例:
import requests
resp = requests.get(url="http://www.baidu.com")
print(resp)
2、post请求
常用参数:
示例:
word = input("please input a word")
url = "https://fanyi.baidu.com/sug"
data = {
"kw": word,
}
headers = {
'User-Agent': "Mozilla / 5.0(Windows NT 10.0;Win64;x64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 96.0.4664 .93 Safari / 537.36",
}
resp = requests.get(url=url, data=data, headers=headers)
print(resp.json())
注意:
- data 和 params 的区别是: data提交的数据并不放在url链接里, 而是放在url链接对应位置的地方作为数据来存储
- data 和 json 的作用类似,适用方法相同
- get 里面的参数大部分也适用
3、response
4、head
url = "http://www.baidu.com"
headers = {
'User-Agent': "Mozilla / 5.0(Windows NT 10.0;Win64;x64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 96.0.4664 .93 Safari / 537.36",
}
resp = requests.head(url=url)
print(resp.headers)
5、put
put请求的作用:更新资源
put 和 post 区别:
-
新建一条记录的话就用post
-
post方法被用于请求源服务器接受请求中的实体作为请求资源的一个新的从属物
-
更新一条记录的话就用put
-
put方法请求服务器去把请求里的实体存储在请求URI标识下
三、示例
1、文件上传
通过requests的POST请求我们知道requests可以模拟提交数据,例如文件上传:
import requests ##用open的方式打开文件,作为字典的值。file是请求规定的参数,每个请求都不一样。 files = {"file": open("C:\Users\lenovo\Desktop\de.txt","rb")} response = requests.post("http://httpbin.org/post", files=files)
2、获取cookie
(1)方式一
import requests res = requests.get('https://www.baidu.com/') cookies = res.cookies print(cookies)
(2)方式二
# 方式二 import requests # 定义方法 """AI is creating summary for """ def get_cookie(): response = requests.get('https://www.baidu.com/') print(response.cookies) return ''.join('{0}={1};'.format(key, value) for key, value in response.cookies.items()) # 调用方法 get_cookie()
3、爬取某个接口
import requests headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:99.0) Gecko/20100101 Firefox/99.0'} cookies = requests.post('https://xueqiu.com/S/SH000001', headers=headers) cookies = cookies.cookies raw = requests.get('https://stock.xueqiu.com/v5/stock/quote.json?symbol=SH000001&extend=detail', timeout=5, cookies=cookies, headers=headers) print(raw.json())
如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!