Python模块之 requests - 请求HTTP库
requests - 请求HTTP库
常用网络请求速查表:https://www.cnblogs.com/wutou/p/15802687.html
来源:https://www.52pojie.cn/thread-1551640-1-1.html
TIF格式,原图下载:https://wwa.lanzoui.com/iXVLFwx2uwj
作用:
请求HTTP库
必要操作:
1 | >>> import requests |
帮助查看:
1 | >>> help (requests) |
或 单独查看某个方法(函数)
1 2 | >>> help (requests.get) >>> help (requests.encoding) |
方法(函数):
## 请求https://baidu.com页面
1 | r = requests.get( 'https://baidu.com' ) |
## 查看当前编码
1 | r.encoding |
## 设置编码utf-8 ,因为网页是utf-8,编码不对显示汉字会乱码
1 | r.encondig = 'utf-8' |
## 确保程序在下载失败时停止[1]
1 | r.raise_for_status() |
## 获取文件长度(字节数)[2] 获取来自服务器的原始套接字响应stream=True
1 2 3 4 | >>> url = 'https://wppkg.baidupcs.com/issue/netdisk/gray/1.4.2/202112051127/tv_1.4.2.apk' >>> r = requests.get(url, stream = True ) >>> r.headers.get( 'content-length' ) '32188097' |
## request的函数(可做for的迭代对象);chunk_size = 1024的块大小可以按实际情况写
1 | r.iter_content(chunk_size = 1024 ) |
## 打印返回信息(response)
1 2 3 4 | print (r.) # 打印请求方法 print (r.url) # 打印请求URL print (r.headers) # 打印请求头 print (r.body) # 打印请求体 |
## 打印请求信息
1 2 3 4 5 6 | response = requests.get( 'http://www.example.com' ) request = response.request print (request.method) # 打印请求方法 print (request.url) # 打印请求URL print (request.headers) # 打印请求头 print (request.body) # 打印请求体 |
#python的requests模块进行下载带宽限制,进行现在速度限制,避免拉爆服务器。
#开启requests的stream=True就可以进行渐进式下载,然后再适当的sleep一下。
#就可以减少下载带宽,限制下载速度了。
1 | requests.get(http_url,stream = True ) |
# 随机User-Agent
1 2 3 4 5 6 7 8 9 10 11 12 | from fake_useragent import UserAgent ua = UserAgent() headers = { #ua.random 表示的时 随机生成一个User-Agent,这样的话我们就能有很多个 User-Agent 来使用, #就不用再担心 被封ip了。 "User-Agent" : ua.random, "Accept" : "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9" , "Accept-Language" : "zh-CN,zh;q=0.9" , "Accept-Encoding" : "gzip, deflate, br" , "DNT" : "1" , "Connection" : "cloes" } |
参数:
requests.get()方法所有参数顺序:
url(必选)、params、allow_redirects、auth、cert、cookies、headers、proxies、stream、timeout、verify
参数 | 状态 | 各参数的描述 |
url | 必须 | 请求的网址 |
params | 可选 | 字典,要作为查询字符串发送的元组或字节的列表。默认None |
allow_redirects | 可选 | 用于启用/禁用重定向的布尔值。默认True(允许重定向) |
auth | 可选 | 用于启用某种HTTP身份验证的元组。默认None |
cert | 可选 | 指定证书文件或密钥的字符串或元组。默认None |
cookies | 可选 | 发送到指定网址的Cookie字典。默认None |
headers | 可选 | 发送到指定网址的HTTP标头字典。默认None |
proxies | 可选 | URL代理协议字典。默认None |
stream | 可选 | 如果响应应立即下载(False)或流式传输(限制下载速度了 True)的布尔指示。默认False |
timeout | 可选 | 一个数字或一个元组,指示等待客户端建立连接和/或发送响应的秒数。 默认值None表示请求将继续,直到连接关闭 |
verify | 可选 | 用于验证服务器TLS证书的布尔值或字符串指示。默认True |
requests.post()方法所有参数顺序:url(必选)、data、json、files、allow_redirects、auth、cert、cookies、headers、proxies、stream、timeout、verify
参数 | 状态 | 各参数的描述 |
url | 必须 | 请求的网址 |
data | 可选 | 元组列表,字节或要发送到指定URL的文件对象 |
json | 可选 | 要发送到指定URL的JSON对象 |
files | 可选 | 要发送到指定URL的文件字典 |
allow_redirects | 可选 | 用于启用/禁用重定向的布尔值。默认True(允许重定向) |
auth | 可选 | 用于启用某种HTTP身份验证的元组。默认None |
cert | 可选 | 指定证书文件或密钥的字符串或元组。默认None |
cookies | 可选 | 要发送到指定网址的Cookie字典。 默认None |
headers | 可选 | 要发送到指定网址的HTTP标头字典。默认None |
proxies | 可选 | URL代理协议字典。默认None |
stream | 可选 | 如果响应应立即下载(False)或流式传输(限制下载速度了 True)的布尔指示。默认False |
timeout | 可选 | 一个数字或一个元组,指示等待客户端建立连接和/或发送响应的秒数。默认值 None表示请求将继续,直到连接关闭 |
verify | 可选 | 用于验证服务器TLS证书的布尔值或字符串指示。默认True |
参考、说明:
^[1] https://blog.csdn.net/weixin_41848989/article/details/88554700
^[2] https://blog.csdn.net/weixin_36896856/article/details/108016558
https://deepinout.com/python/python-qa/49_python_python_requests_print_entire_http_request_raw.html
https://www.cnblogs.com/zpf1092841490/p/18002287 (参数说明)
https://blog.csdn.net/qq_41945828/article/details/105173061 (随机User-Agent、限制下载速度了)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!