python第三方库-requests的使用

Python常见的第三方库:requests、numpy、pandas Python 拥有丰富的第三方库,涵盖了数据分析、网络爬取、人工智能、科学计算等多个领域。其中,requests、numpy 和 pandas 是最常用的三个库,分别用于。这些库是 Python 开发中不可或缺的工具,熟练掌握它们可以大大提高编程效率。在下一节中,我们将学习。numpy 提供了一些便捷的方法来创建特殊数组,例如全零数组、全一数组、随机数组等。GET 请求是最常见的 HTTP 请求方式,通常用于获取网页内容或 API 数据。本节将详细介绍它们的基本功能,并通过示例代码帮助理解它们的使用方法。 阅读详情

request

Requests 是使用 Apache2 Licensed 许可证的 基于Python开发的HTTP 库,其在Python内置模块的基础上进行了高度的封装,从而使得Pythoner进行网络请求时,变得美好了许多,使用Requests可以轻而易举的完成浏览器可有的任何操作

Get请求

# 1、无参数实例

import requests
ret = requests.get('https://github.com/timeline.json')
    
print(ret.url)
print(ret.text)
    
    
    
# 2、有参数实例
import requests
    
payload = {'key1': 'value1', 'key2': 'value2'}
ret = requests.get("http://httpbin.org/get", params=payload)
print(ret.url)
print(ret.text)

POST请求

# 1、基本POST实例
    
import requests
    
payload = {'key1': 'value1', 'key2': 'value2'}
ret = requests.post("http://httpbin.org/post", data=payload)
    
print(ret.text)
    
    
# 2、发送请求头和数据实例
    
import requests
import json
    
url = 'https://api.github.com/some/endpoint'
payload = {'some': 'data'}
headers = {'content-type': 'application/json'}
    
ret = requests.post(url, data=json.dumps(payload), headers=headers)
print(ret.text)
print(ret.cookies) 

其他请求

requests.get(url, params=None, **kwargs)
requests.post(url, data=None, json=None, **kwargs)
requests.put(url, data=None, **kwargs)
requests.head(url, **kwargs)
requests.delete(url, **kwargs)
requests.patch(url, data=None, **kwargs)
requests.options(url, **kwargs)
    
# 以上方法均是在此方法的基础上构建
requests.request(method, url, **kwargs)

requests.request() 参数

method: 提交方式 get/post
url:提交地址。
params:在URL上传递的参数,GET形式传递到后台,例如向http://www.oldboyyede.com上传数据。

requests.request(
  
   method = 'GET',
  
  url = 'http://www.oldboyyede.com',
  
  params = { 'k1' : 'v1' , 'k2' : 'v2' }
  
)
  
#   http://www.oldboyyede.com?k1=v1&k2=v2

data:在请求体里面传递的数据,后面可以是字典,字节等数据类型

requests.request(
  
  method = 'POST',
  
  url = 'http://www.oldboyyede.com',
  
  # data= { 'k1' : 'v1' , 'k2' : 'v2' , 'x':[1,2,3]}
  
  data=" user=wjw&pwd=123123 "
  
)

json:在请求体里面传递数据,把整体序列化成一个大字符串,字典中嵌套字典的话用JSON

requests.request(
  
  method = 'POST',
  
  url = 'http://www.oldboyyede.com',
  
  json= { 'k1' : 'v1' , 'k2' : 'v2' }
  
)
  
# "{ 'k1' : 'v1' , 'k2' : 'v2' }"

headers:请求头。
一定要添加浏览器,不然可能会遇到网络防火墙

# 一定要添加浏览器,不然可能会遇到网络防火墙拦截你的请求
headers = {'User-Agent': ''}
  
r1 = requests.get(
    url='http://dig.chouti.com/',
    headers=headers
)

files:上传文件对象。

# 模块的详细使用
import requests
  
requests.post(
    url='xxxxxx',
    files={
        # 'f1':open('s1.py','rb')
        # 可以上传元祖的形式上传,sssss1.py为后台获取的名称
        'f1': open('sssss1.py',('s1.py', 'rb'))
    }
)

参数实例

def param_method_url():
    # requests.request(method='get', url='http://127.0.0.1:8000/test/')
    # requests.request(method='post', url='http://127.0.0.1:8000/test/')
    pass
  
  
def param_param():
    # - 可以是字典
    # - 可以是字符串
    # - 可以是字节(ascii编码以内)
  
    # requests.request(method='get',
    # url='http://127.0.0.1:8000/test/',
    # params={'k1': 'v1', 'k2': '水电费'})
  
    # requests.request(method='get',
    # url='http://127.0.0.1:8000/test/',
    # params="k1=v1&k2=水电费&k3=v3&k3=vv3")
  
    # requests.request(method='get',
    # url='http://127.0.0.1:8000/test/',
    # params=bytes("k1=v1&k2=k2&k3=v3&k3=vv3", encoding='utf8'))
  
    # 错误
    # requests.request(method='get',
    # url='http://127.0.0.1:8000/test/',
    # params=bytes("k1=v1&k2=水电费&k3=v3&k3=vv3", encoding='utf8'))
    pass
  
  
def param_data():
    # 可以是字典
    # 可以是字符串
    # 可以是字节
    # 可以是文件对象
  
    # requests.request(method='POST',
    # url='http://127.0.0.1:8000/test/',
    # data={'k1': 'v1', 'k2': '水电费'})
  
    # requests.request(method='POST',
    # url='http://127.0.0.1:8000/test/',
    # data="k1=v1; k2=v2; k3=v3; k3=v4"
    # )
  
    # requests.request(method='POST',
    # url='http://127.0.0.1:8000/test/',
    # data="k1=v1;k2=v2;k3=v3;k3=v4",
    # headers={'Content-Type': 'application/x-www-form-urlencoded'}
    # )
  
    # requests.request(method='POST',
    # url='http://127.0.0.1:8000/test/',
    # data=open('data_file.py', mode='r', encoding='utf-8'), # 文件内容是:k1=v1;k2=v2;k3=v3;k3=v4
    # headers={'Content-Type': 'application/x-www-form-urlencoded'}
    # )
    pass
  
  
def param_json():
    # 将json中对应的数据进行序列化成一个字符串,json.dumps(...)
    # 然后发送到服务器端的body中,并且Content-Type是 {'Content-Type': 'application/json'}
    requests.request(method='POST',
                     url='http://127.0.0.1:8000/test/',
                     json={'k1': 'v1', 'k2': '水电费'})
  
  
def param_headers():
    # 发送请求头到服务器端
    requests.request(method='POST',
                     url='http://127.0.0.1:8000/test/',
                     json={'k1': 'v1', 'k2': '水电费'},
                     headers={'Content-Type': 'application/x-www-form-urlencoded'}
                     )
  
  
def param_cookies():
    # 发送Cookie到服务器端
    requests.request(method='POST',
                     url='http://127.0.0.1:8000/test/',
                     data={'k1': 'v1', 'k2': 'v2'},
                     cookies={'cook1': 'value1'},
                     )
    # 也可以使用CookieJar(字典形式就是在此基础上封装)
    from http.cookiejar import CookieJar
    from http.cookiejar import Cookie
  
    obj = CookieJar()
    obj.set_cookie(Cookie(version=0, name='c1', value='v1', port=None, domain='', path='/', secure=False, expires=None,
                          discard=True, comment=None, comment_url=None, rest={'HttpOnly': None}, rfc2109=False,
                          port_specified=False, domain_specified=False, domain_initial_dot=False, path_specified=False)
                   )
    requests.request(method='POST',
                     url='http://127.0.0.1:8000/test/',
                     data={'k1': 'v1', 'k2': 'v2'},
                     cookies=obj)
  
  
def param_files():
    # 发送文件
    # file_dict = {
    # 'f1': open('readme', 'rb')
    # }
    # requests.request(method='POST',
    # url='http://127.0.0.1:8000/test/',
    # files=file_dict)
  
    # 发送文件,定制文件名
    # file_dict = {
    # 'f1': ('test.txt', open('readme', 'rb'))
    # }
    # requests.request(method='POST',
    # url='http://127.0.0.1:8000/test/',
    # files=file_dict)
  
    # 发送文件,定制文件名
    # file_dict = {
    # 'f1': ('test.txt', "hahsfaksfa9kasdjflaksdjf")
    # }
    # requests.request(method='POST',
    # url='http://127.0.0.1:8000/test/',
    # files=file_dict)
  
    # 发送文件,定制文件名
    # file_dict = {
    #     'f1': ('test.txt', "hahsfaksfa9kasdjflaksdjf", 'application/text', {'k1': '0'})
    # }
    # requests.request(method='POST',
    #                  url='http://127.0.0.1:8000/test/',
    #                  files=file_dict)
  
    pass
<br>
# 做基本认证 header中加密的用户名和密码
def param_auth():
    from requests.auth import HTTPBasicAuth, HTTPDigestAuth
  
    ret = requests.get('https://api.github.com/user', auth=HTTPBasicAuth('wangjiawei', 'sdfasdfasdf'))
    print(ret.text)
  
    # ret = requests.get('http://192.168.1.1',
    # auth=HTTPBasicAuth('admin', 'admin'))
    # ret.encoding = 'gbk'
    # print(ret.text)
  
    # ret = requests.get('http://httpbin.org/digest-auth/auth/user/pass', auth=HTTPDigestAuth('user', 'pass'))
    # print(ret)
    #
  
# 请求和响应的超时时间
def param_timeout():
    # ret = requests.get('http://google.com/', timeout=1)
    # print(ret)
  
    # ret = requests.get('http://google.com/', timeout=(5, 1))
    # print(ret)
    pass
<br>
# 是允许否重定向
def param_allow_redirects():
    ret = requests.get('http://127.0.0.1:8000/test/', allow_redirects=False)
    print(ret.text)
<br>
# 代理 出口IP  不是本机IP。 流程是:先给代理发,代理帮助我们向目的地址发。
def param_proxies():
    # proxies = {
    # "http": "61.172.249.96:80",
    # "https": "http://61.185.219.126:3128",
    # }
  
    # proxies = {'http://10.20.1.128': 'http://10.10.1.10:5323'}
  
    # ret = requests.get("http://www.proxy360.cn/123456", proxies=proxies)
    # print(ret.headers)
  
  
    # from requests.auth import HTTPProxyAuth
    #
    # proxyDict = {
    # 'http': '77.75.105.165',
    # 'https': '77.75.105.165'
    # }
    # auth = HTTPProxyAuth('username', 'mypassword')
    #
    # r = requests.get("http://www.google.com", proxies=proxyDict, auth=auth)
    # print(r.text)
  
    pass
<br>
# 流形式 比如下片
def param_stream():
    ret = requests.get('http://127.0.0.1:8000/test/', stream=True)
    print(ret.content)
    ret.close()
  
    # from contextlib import closing
    # with closing(requests.get('http://httpbin.org/get', stream=True)) as r:
    # # 在此处理响应。迭代处理
    # for i in r.iter_content():
    # print(i)
  
  
def requests_session():
    import requests
  
    session = requests.Session()
  
    ### 1、首先登陆任何页面,获取cookie
  
    i1 = session.get(url="http://dig.chouti.com/help/service")
  
    ### 2、用户登陆,携带上一次的cookie,后台对cookie中的 gpsd 进行授权
    i2 = session.post(
        url="http://dig.chouti.com/login",
        data={
            'phone': "8612345678977",
            'password': "xxxxxx",
            'oneMonth': ""
        }
    )
  
    i3 = session.post(
        url="http://dig.chouti.com/link/vote?linksId=8589623",
    )
    print(i3.text)
Python的第三方库requests Python的标准库是随着Python安装的时候默认自带的库;Python的第三方库,需要下载后安装到Python的安装目录下。不同的第三方库安装及使用方法不同,Python第三方库的查询地址为:https://pypi.org/,如下图所示,在输入框中输入关键字即可查询到对应的第三方库项目。 例如,当前想要查询的是第三方库requests,在上述输入框中输入“requests”以后,就可以看到许多不同版本的requests第三方库。在此,我选择的是requests 2.26.0这个版本。 点击 阅读详情

相关推荐

老N卡福音:GT1030/GTX1050在MacOS Ventura 13.2上的完整驱动指南(附实测截图)

本文详细介绍了如何在MacOS Ventura 13.2上通过OCLP工具链驱动GT1030和GTX1050等老款NVIDIA显卡,涵盖硬件兼容性验证、BIOS设置、OpenCore配置、驱动安装及性能测试全流程。实测数据显示,这些基于Pascal和Maxwell架构的显卡在当代MacOS系统中仍能发挥实用价值,为老N卡用户提供完整解决方案。

weixin_30832143的博客 632

python爬虫——request模块讲解

一、概述 在后期渗透测试中,经常会遇到需要向第三方发送http请求的场景,python中的requests库可以很好的满足这一要求,Requests模块是一个用于网络请求的模块,主要用来模拟浏览器发请求。其实类似的模块有很多,比如urllib,urllib2,httplib,httplib2,他们基本都提供相似的功能。但是这些模块都复杂而且差不多过时了,requests模块简单强大高效,使得其在众多网络请求模块中脱引而出。 二、安装和基本步骤使用 环境安装:pip install requests 基

记录并分享学习安全的知识点.. 1万+

GNSS数据资源全解析:从DCB到BSX文件的下载与应用指南

本文系统解析了GNSS数据处理所需的核心数据资源,包括DCB、BSX、SP3、CLK等关键文件的官方下载路径与应用方法。详细介绍了CDDIS、武汉大学镜像站等权威数据源,并提供了从数据下载到实际应用的完整指南,帮助用户高效获取GNSS数据,提升精密定位处理效率。

weixin_29246195的博客 141

python—requests模块详解

requests模块详解

W0ngk,一个安全菜鸡,一直在模仿,尚未有超越。 1万+

Unity Addressable资源缓存路径自定义指南:告别C盘爆满烦恼

本文详细介绍了如何自定义Unity Addressable系统的资源缓存路径,解决其默认存储在C盘导致的磁盘空间不足问题。通过配置CacheInitializationSettings并编写编辑器脚本,开发者可以将缓存迁移至项目目录,实现资源的集中管理,提升团队协作效率与开发环境一致性。

pytorch8learner的博客 475

光学遥感显著目标检测初探笔记总结

一张图片里最吸引注意力的部分就是显著性物体,其实是模拟人的一个注意力机制。目标是希望通过计算机的方法让我们自动定位和模拟人的这种感知能力,从而去定位场景中的一个让人感兴趣的目标。

醋酸洋红的博客 2077

Python requests模块(request和response)

Python requests模块(request和response)

晴天的博客 6074

Vue3 + 高德地图实现车辆电子围栏监控与报警

通过本文的实现,我们完成了一个通用的车辆电子围栏监控功能:支持多种围栏类型。支持进入/离开/双向报警。使用缓存机制避免重复告警。可与Vue3 + 高德地图无缝集成。在实际项目中,可以结合WebSocket 实时定位,实现车辆的实时监控 + 围栏告警系统🚀。

专注于前端开发与实战技巧,记录从零到一的学习与项目经验。分享 Vue3 / JavaScript / TypeScript / Flutter /Uniapp等前端技术,以及 性能优化、工程化、最佳实践。 1035

python导入requests库_浅谈python中requests模块导入的问题

今天使用Pycharm来抓取网页图片时候,要导入requests模块,但是在pycharm中import requests 时候报错。原因: python中还没有安装requests库解决办法:1.先找到自己python安装目录下的pip2.在自己的电脑里打开cmd窗口。先点击开始栏,在搜索栏输入cmd,按Enter,打打开cmd窗口。在cmd里将目录切换到你的pip所在路径。比如我的在C:\Py...

weixin_39605347的博客 1478

华为OD机试真题 Java&Go 实现【优雅子数组】【100%通过率】【2022.11 Q4 新题】

如果一个数组中出现次数最多的元素出现大于等于K次,被称为K -优雅数组,k也可以被称为优雅阈值。例如,数组1,2,3,1、2,3,1,它是一个3-优雅数组,因为元素1出现次数大于等于3次,数组1,2,3,1,2就不是一个3-优雅数组,因为其中出现次数最多的元素是1和2,只出现了2次。给定一个数组A和k,请求出A有多少子数组是k-优雅子数组。

MISAYAONE的博客 1万+

【Google Play 上架】内部 / 封闭 / 开放 测试全解 — “只跑一个就能上架”?不行!

Google Play新规要求个人开发者账号在2023年11月13日后必须通过封闭测试(Closed testing)才能上架应用。封闭测试需要至少12名测试者连续14天保持参与状态,而内部测试和开放测试不能替代这一要求。三类测试轨道各有特点:内部测试用于快速内部验证,封闭测试是上架必经环节,开放测试面向更广泛用户但非必需。上架流程建议先内部测试修复问题,再启动封闭测试满足14天要求,最后申请生产发布。组织账号和早期个人账号可能不受此限制。开发者应提前规划测试人群,确保持续测试周期,并关注Play Cons

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 2799

python教程:requests库使用方法详解

python教程:requests库使用方法详解

Python热爱者的博客 4822

【RT-DETR实战】112、NCNN模型转换与层实现支持:从模型文件到推理引擎的硬核实战

本文详细记录了将RT-DETR模型部署到NCNN框架的全过程及关键要点。作者首先遇到MultiHeadAttention等算子不支持的问题,通过ONNX中间转换和自定义层实现解决。文章具体介绍了PyTorch到NCNN的权重转换技巧、模型优化方法(包括量化和线程优化)以及调试经验,强调逐层对比输出、预处理检查和边界情况测试的重要性。最后分享了保持转换流程可复现性的实用建议,指出手动调试虽然耗时但能加深对模型的理解,体现了工程师在解决技术难题时的专业精神与成就感。

企鹅码农的专属播客,分享10多年的实战案例和经验解读,包含YOLO、RT-DETR、AI等各个工作领域。 41

python第三方库requests详解

python第三方库requests详解 Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求。Requests 的哲学是以 PEP 20 的习语为中心开发的,所以它比 urllib 更加 Pythoner。更重要的一点是它支持 Pyth...

嘿呦小黑的博客 1273

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

python第三方库之requests库

本文介绍了Python的requests模块,用于发送HTTP请求和获取响应数据。

佛系跟新......的博客 1288

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Python3第三方库requests

2.Python3第三方库requests 2.1安装requests 由于requests是第三方库,因此在vs code上需要安装才能使用。 PS D:\&gt; cd '.\Program Files (x86)\Python\Python37-32\Scripts\' PS D:\Program Files (x86)\Python\Python37-32\Scripts&gt; ...

Bing_bing_bing_的博客 3091

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Requests 库 | 不可胜数的 Python 第三方库

写在之前 标准库的内容已经非常多了,我在前面的文章中已经介绍了七八个,没看的可以回头找着去看看。虽然介绍了不少,但是 Python 给编程者的支持不仅仅在于标准库,它还有不可胜数的第三方库。 作为一个 Pythoner,即使你的技术已经达到大佬的级别,在做某件事情之前最好还是 Google 一下是否有标准库或者第三方库来帮你完成,不是有那么一句话么:“如果我比别人看的更远,那是因为我站在巨人的肩膀...

Rocky0429 1239

Python第三方库的王者:requests

2011年某个下午,一个叫做 Kenneth 的小伙子因为无法忍受Python内置的urllib库,决定施展一下他的开发技术,写一个真正人性化的HTTP请求库,没想到竟写成了Python生态的重要支柱。如果你已经入门了Python,想要进一步提升自己的编程能力,也可以把requests项目当做进阶学习的案例,阅读源代码、学习代码风格和程序结构的设计,甚至提交代码改进项目中的问题,为开源项目贡献一份力。一旦你有过requests的经验,就打开了网络请求的新世界,再也不想用内置的urllib来实现。

Crossin的编程教室 1137

【python第三方库】requests库爬虫入门

参考链接: https://blog.youkuaiyun.com/qq_37098526/article/details/94207603 概述 requests 库是一个简洁且简单的处理HTTP请求的第三方库。 requests的最大优点是程序编写过程更接近正常URL 访问过程。 这个库建立在Python 语言的urllib3 库基础上,类似这种在其他函数库之上再封装功能提供更友好函数的方式在Python 语言中十分常见。在Python 的生态圈里,任何人都有通过技术创新或体验创新发表意见和展示才华的机会。 req

All_In_gzx_cc的博客 419

python第三方库Requests库基本介绍

虽然Python的标准库中 urllib 模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests 自称 "HTTP for Humans",说明使用更简洁方便。 Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用:) Requests 继承了urllib的所有特性。Requests支持HTTP连接保持和连接池,支...

Laic Zhang的博客 4605

python怎么安装requests、beautifulsoup4等第三方库

零基础学习python最大的难题之一就是安装所有需要的软件,下面来简单介绍一下如何安装用pip安装requests、beautifulsoup4等第三方库: 方法/步骤 点击开始,在运行里面输入CMD,并打开CMD操作窗口 首选确认环境变量已经修改好了,如果不知道修改没,输入pyt...

weixin_30256901的博客 876

requests库的使用(python第三方库)

weixin_44491129的博客 247

Python:第三方库requests 发起网络请求

今天,我们将用Python的pip,安装下载一个第三方模块requests,它可以帮助我们发起网络请求。 1.安装reqeusts模块 在Windows系统下,打开一个cmd命令提示符,输入: pip install requests 如果没有出现错误信息,则打开一个Python文件,输入: import requests 运行代码,没有报错就说明成功安装。 2.使用reqeusts模块 2.1 get方法 2.1.1 普通请求 import requests r = requests.get("htt

有意栽花花不发,无心插柳柳成荫。 891

python中MacOS版安装,requests第三方库,解决运行‘requests‘没有属性‘get‘

使用pip list进行查看,拥有即安装成功。

weixin_54476062的博客 1443

Linux离线安装Python第三方库Requests

前言:因为公司服务器不能上外网,所以执行Python脚本需要自行配置,如用到第三方库,也要自行安装。由于这个系统镜像缺少很多基础依赖,导致各种apt install都无法安装,只能源码安装插件。不管如何,源码安装始终是个终极大法,啥都能安装上,就是稍微繁琐一些,且姿势要对。如此次Linux离线安装Python第三方库Requests。 1、No module named requests root@ubuntu16-CH121-V3:/home# python Python 2.7.12 (defau

都随它大小便吧 6815
上一篇: python爬虫-基本原理(简单好学)
下一篇: python第三方库-urllib(简单好用)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值