Python全栈之路标准库系列之requests模块

网络爬虫基础——【requests】模块详解 requests是一种Python的HTTP模块,requests模块可以处理URL编码,会话cookie和HTTP基本身份验证等功能。与urllib库相比,requests提供了简便易用的API,使用更加方便。同时requests是一种流行的Python网络请求库,它不仅易于使用,而且功能还十分强大,由于requests模块易于使用,因此很适合初学者入手学习网络爬早。 阅读详情

安装Requests模块

Requests模块官方提供了两种方式安装:

pip方式安装

pip install requests

源码方式安装

git clone git://github.com/kennethreitz/requests.git
cd requests
python setup.py install

验证是否安装成功

进入python解释的,导入模块试试,如果导入成功则安装成功,否则就需要检查那里执行错误了呢。

在学习过程中有什么不懂得可以加我的
python学习交流扣扣qun,784758214
群里有不错的学习视频教程、开发工具与电子书籍。
与你分享python企业当下人才需求及怎么从零基础学习好python,和学习什么内容
C:\Users\anshengme> python
Python 3.5.1 (v3.5.1:37a07cee5969, Dec  6 2016, 01:54:25) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import requests

环境准备

安装gunicorn和httpbin

sudo pip3 install gunicorn httpbin

启动一个gunicornServer

⇒  sudo gunicorn httpbin:app
[2016-10-27 11:45:08 +0800] [12175] [INFO] Starting gunicorn 19.6.0
[2016-10-27 11:45:08 +0800] [12175] [INFO] Listening at: https://blog.ansheng.me:8000 (12175)
[2016-10-27 11:45:08 +0800] [12175] [INFO] Using worker: sync
[2016-10-27 11:45:08 +0800] [12178] [INFO] Booting worker with pid: 12178

打开浏览器输入``将会得到以下页面,相当于在本地启动一个http server便于学习requests模块

requests-01

简单的一个requests小程序

下面的一个小程序会通过requests请求'https://blog.ansheng.me:8000/ip'这个URI链接,获取到对应的数据。

#!/use/bin/env python3
# _*_ coding:utf-8 _*_
import requests

URL_IP = 'https://blog.ansheng.me:8000/ip'

def use_params_requests():
    # 参数
    params = {'params1': 'Hello', 'params2': 'World'}
    # 发送请求
    response = requests.get(URL_IP, params=params)
    print("响应的状态码:", response.status_code, response.reason)
    print("返回的头部:", response.headers)
    print("把返回的数据转换为json:", response.json())
    print("响应的文本:", response.text)

if __name__ == '__main__':
    use_params_requests()

发送请求

通过GITHUB提供的API获取用户信息

#!/use/bin/env python3
# _*_ coding:utf-8 _*_
import requests
import json

URL = 'https://api.github.com'

def build_uri(endpoint):
    return '/'.join([URL, endpoint])

def better_print(json_str):
    return json.dumps(json.loads(json_str), indent=4)

def request_method():
    # 获取用户的所有信息
    response = requests.get(build_uri('users/anshengme'))
    print(better_print((response.text)))

    print("\n")

    # 获取用户的邮箱
    response = requests.get(build_uri('user/emails'), auth=("anshengme.com@gmail.com", "xxxxxx"))
    print(better_print((response.text)))

if __name__ == '__main__':
    request_method()

带参数的请求

# 使用params传参
def params_request():
    response = requests.get(build_uri('users'), params={'since': 11})
    print(better_print(response.text))
    print(response.request.headers)
    print(response.url)

# 使用json传参方式
def json_request():
    response = requests.get(build_uri('user'), auth=("username", "email"), json={"name": "asdas"})
    print(better_print(response.text))

异常处理

def timeout_request():
    try:
        response = requests.get(build_uri('user/emails'), timeout=10)
        response.raise_for_status()
    except Exception as e:
        print(e)
    else:
        print(response.text)
        print(response.status_code)

自定义request

from requests import Request, Session

def hard_request():
    s = Session()
    # 创建请求
    headers = {'User-Agent': 'fake1.3.4'}
    req = Request('GET', build_uri('user/emails'), auth=('anshengme.com@gmail.com', 'xxxxxx'), headers=headers)
    prepped = req.prepare()
    print("请求头》》", prepped.headers)
    # 发送请求
    resp = s.send(prepped)
    print(resp.status_code)
    print(resp.request.headers)
    print(resp.text)

实例

下载图片/文件

#!/use/bin/env python3
# _*_ coding:utf-8 _*_
import requests
from contextlib import closing

# 流传输的模式
def download_img():
    url = "http://www.sinaimg.cn/IT/cr/2016/0331/725124517.jpg"
    # headers = {
    #     'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36'}
    # response = requests.get(url, headers=headers, stream=True)
    response = requests.get(url, stream=True)
    print(response.status_code, response.reason)

    with open('github.jpg', 'wb') as fd:
        for chunk in response.iter_content(128):
            fd.write(chunk)

def download_img_improved():
    url = "http://www.sinaimg.cn/IT/cr/2016/0331/725124517.jpg"
    with closing(requests.get(url, stream=True)) as response:
        # 打开并写入文件
        with open('github1.jpg', 'wb') as fd:
            for chunk in response.iter_content(128):
                fd.write(chunk)

download_img()
download_img_improved()

如果你依然在编程的世界里迷茫,可以加入我们的Python学习扣qun:784758214,看看前辈们是如何学习的!交流经验!自己是一名高级python开发工程师,从基础的python脚本到web开发、爬虫、django、数据挖掘等,零基础到项目实战的资料都有整理。送给每一位python的小伙伴!分享一些学习的方法和需要注意的小细节,点击加入我们的 python学习者聚集地

处理响应的事件钩子

#!/use/bin/env python3
# _*_ coding:utf-8 _*_
import requests

def get_key_info(response, *args, **kwargs):
    print(response.headers["Content-Type"])

def main():
    requests.get("https://www.baidu.com", hooks=dict(response=get_key_info))

if __name__ == "__main__":
    main()
Requests —— Requests模块简介与安装 Requests模块简介:在python的标准库中,虽然提供了urllib,utllib2,httplib,但是做接口测试,requests使用更加方便快捷,正如官方说的,“让HTTP服务人类”。Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库,Requests它会比urllib更加方便,可以节约我们大量的工作。 阅读详情

相关推荐

Python模块之requests模块

requests Python标准库中提供了:urllib等模块以供Http请求,但是,它的 API 太渣了。它是为另一个时代、另一个互联网所创建的。它需要巨量的工作,甚至包括各种方法覆盖,来完成最简单的任务。 import urllib.request f = urllib.request.urlopen('http://www.webxml.com.cn//webservices/qqOnlineWebService.asmx/qqCheckOnline?qqCode=424662508') re

Jiaxing_Li的博客 521

爬虫 - requests

介绍 使用requests可以模拟浏览器的请求,比起python内置的urllib模块,requests模块的api更加便捷(本质就是封装了urllib3) 注意:requests库发送请求将网页内容下载下来以后,并不会执行js代码,这需要我们自己分析目标站点然后发起新的request请求 安装 >: pip3 install requests 使用 各种请求方式:常用的就是...

Waller_的博客 1390

【机构vip教程】Requests(1):Requests模块简介与安装

2023最新自动化测试自学教程新手小白26天入门最详细教程,目前已有300多人通过学习这套教程入职大厂!!_哔哩哔哩_bilibili2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+_哔哩哔哩_bilibili​​​​​​也方便你下次能够快速查找。如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,

1054

requests框架详解

Requests是python中用来响应HTTP请求,处理URL数据的框架。主要分两类,GET请求和POST请求。

weixin_40013461的博客 4132

【Python】复习12:标准库与第三方库

标准库和第三方库都是Python编程中不可或缺的资源。标准库提供了基础的功能和工具,而第三方库则用于扩展Python的功能并满足特定的需求。在使用这些库时,你需要了解它们的安装方法、导入方式以及提供的函数和类,以便能够有效地利用它们来编写高质量的Python代码。

weixin_48134870的博客 1870

Python全栈学习路线图:从零基础到进阶的实战指南

Python作为一门简洁高效的编程语言,其核心优势在于清晰的语法结构和强大的生态系统。理解其基础语法、数据结构与函数机制是掌握编程原理的关键,这为构建复杂应用奠定了技术基础。面向对象编程思想进一步提升了代码的可维护性和复用性,体现了现代软件工程的价值。无论是Web开发、数据分析还是自动化脚本,Python都能找到广泛的应用场景。本文基于Python学习路径和核心知识体系,系统梳理了从环境搭建到进阶实战的全栈路线,并提供了丰富的代码示例和常见问题排查思路,旨在帮助开发者构建扎实的技能树,高效掌握这门热门技术。

weixin_30596023的博客 362

Python(爬虫篇)---Requests模块

Requests——让HTTP服务人类一、Requests简介1. requests库简介2. 安装方式二、GET请求1. 全页面保存text和content的使用情况2. params属性3. headers属性三、POST请求1. data属性2. header属性 一、Requests简介 1. requests库简介 Urllib 和 Requests 模块是发起 http 请求最常见的模块。 虽然 Python 的标准库中 urllib 模块已经包含了平常我们使用的大多数功能,但是它的 API

Zachary579的博客 4543

4.Python基础语法(二)【常用标准库概览】

Python基础语法(二) 简单几个Python3 标准库概览~

孤寒者的博客 2万+

Python入门:Python3 requests模块全面学习教程

Python入门:Python requests模块全面学习教程,本文是围绕该模块的使用展开,其作为第三方 HTTP 请求库,因 API 简洁、功能完善,比标准库 urllib 更易用,是爬虫、接口测试等场景的首选工具。教程先介绍基础准备,包括通过 pip 安装模块及 import 导入;再详解核心操作,如发送 GET 请求获取网页或 JSON 数据(可带查询参数、请求头)、用 POST 提交表单或 JSON 数据,同时说明 response 对象的关键属性……

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 2万+

探索Python标准库的精髓

sys模块提供了一种访问与Python解释器紧密相关的一些变量和函数的方式。这些功能对于那些需要深入了解解释器行为的应用来说非常重要。首先,我们来看看如何通过sys模块获取系统参数,以及如何使用它来控制模块的导入。一个典型的使用场景是在命令行程序中读取传递给Python脚本的参数。sys模块中的sys.argv列表包含了命令行参数,其中总是脚本名称,其余元素为传递给脚本的参数列表。例如:import sys# 获取命令行参数# 打印所有参数print(arg)

weixin_30653091的博客 1093

requests模块下载

https://github.com/kennethreitz/requests/zipball/master 可以自行下载,也可以使用我这里的压缩包,本人在此保证压缩包绝无后门,请各位放心使用

Python requests 模块使用指南

requests 模块是 Python 中用于发送 HTTP 请求的第三方库,它封装了 HTTP 协议的常见操作,使得与 Web 服务器的交互变得更加简洁和易用。与 Python 标准库中的 urllib 相比,requests 通过更直观的 API 提供了更高效的 HTTP 请求处理方式。Python的requests模块是一个非常强大的工具,主要用于简化 HTTP 请求的发送、响应的处理和网络错误的捕获。requests 也可以用于自动化测试,模拟用户的 HTTP 请求,测试 Web 应用的不同功能。

网络风云的博客 8256

Windows批处理脚本实战:用Ping命令打造简易网络监控工具(附完整代码)

本文介绍如何利用Windows批处理脚本和Ping命令,快速构建一个轻量级、自动化的网络监控工具。该方案无需额外安装软件,通过周期性探测目标IP连通性,并将结果(成功、失败及延迟)自动记录到带时间戳的日志文件中,适合中小团队或临时监控需求,实现低成本、高效率的网络状态监控。

5f4d3s2a1q的博客 494

python模块之requests及应用

Python标准库中提供了:urllib、urllib2、httplib等模块以供Http请求,但是,它的 API 太渣了。它是为另一个时代、另一个互联网所创建的。它需要巨量的工作,甚至包括各种方法覆盖,来完成最简单的任务。 import urllib2 import json import cookielib def urllib2_request(url, method="GET", ...

菲宇运维 6514

Linux之SUSE系统SAP-HANA经常系统内存不足使得SAP应用不能使用解决方案

问题描述 Linux内存使用量超过阈值,使得sap应用程序无可用内存,最终导致程序崩溃。 问题原因 自己查阅了一些资料,也基于zabbix的可用内存和实际不太一样入手去找原因发现问题出现于Cached的值过大,导致系统没有可以再分配的内存空间。Cached只要用来缓存文件的,经常读写的文件会被缓存到Cached中,可以增加读写效率,该功能是Linux系统内核提供的,而SAP-HANA的日志文件很大...

liuxiangyang_的博客 6709

告别GitHub!手把手教你用Gitblit在Windows 10上搭建私人局域网Git服务器(附SourceTree配置)

本文详细介绍了如何在Windows 10环境下使用Gitblit搭建私有Git服务器,实现局域网内高效代码协作。通过轻量级的Gitblit解决方案,开发者可以享受数据完全自主、离线可用性和局域网高速访问等优势。文章包含从环境准备、安装部署到SourceTree配置的全流程指南,特别适合金融、医疗等敏感行业团队使用。

weixin_30430169的博客 280

python的requests模块从哪里下载_python requests模块下载

【实例简介】requests是python的一个HTTP客户端库,跟urllib,urllib2类似,那为什么要用requests而不用urllib2呢?官方文档中是这样说明的:“ python的标准库urllib2提供了大部分需要的HTTP功能,但是API太逆天了,一个简单的功能就需要一大堆代码。”【实例截图】【核心代码】requests-master└── requests-master├──...

weixin_39740283的博客 1093

深入了解 CPU 的型号、代际架构与微架构!

深入了解 CPU 的型号、代际架构与微架构!

欢迎朋友,我是一名十多年开发经验的新手,希望多多指教。 3195

Python模块和包:标准库模块(os, sys, datetime, math等)②

本文将详细介绍一些常用的标准库模块:os、sys、datetime 和 math,并附上一个综合详细的例子来展示它们的使用。的使用,并提供了一个综合详细的例子,展示了这些模块在实际项目中的应用。模块提供了非常多的与操作系统交互的函数,用于操作文件和目录。模块提供了访问与 Python 解释器紧密相关的变量和函数。以下是一个综合详细的例子,展示了如何使用。这篇博文详细介绍了Python的标准库模块。模块为日期和时间操作提供了类和方法。

结合项目案例,记录点点滴滴,自己回顾,分享他人o__o 4775

Windows/Mac/Linux三系统保姆级教程:用llama.cpp将safetensors模型转gguf格式(附常见错误解决)

本文提供Windows、Mac和Linux系统下使用llama.cpp将safetensors模型转换为gguf格式的详细教程,涵盖环境配置、转换原理及常见错误解决方案。通过跨平台兼容性处理,帮助开发者高效完成模型格式转换,优化边缘计算性能。

weixin_29227425的博客 270

【Cadence】stb仿真和ac仿真——以一个简单的全差分反相放大器仿真为例

最近在补一些仿真方法学的问题,以及一些一直以来都有点模糊的概念,简单记录一下。搭建一个以两个CMOS反相器构成的全差分放大器(28nm工艺,PMOS和NMOS尺寸一致)激励的设置方便共模和差模仿真用同一个TB(这里有一个问题:这个放大器需要在开环下仿真还是闭环下?哪些放大器应用在开环,哪些闭环?这种应用场景不同会导致需要仿真得到开环还是闭环增益,或者环路增益?(我知道放大器在设计的时候肯定都是闭环应用的多,但是什么时候没必要闭环应用?光验证ac和stb仿真是否一样的话有必要有回路吗?

weixin_44951108的博客 5万+

Python之Requests模块简介与安装

下载路径:打开pycharm——File——Settings——Project:项目名——Python Interpreter——点击左上角+号——输入requests——点击Install Package;Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库,Requests它会比urllib更加方便,可以节约我们大量的工作。下载并解压requests-2.19.1.tar.gz,然后用cmd进入解压目录,使用命令。

阿里大叔说测试的博客 1万+

5、自动化代码结构与运维系统的优化

本文探讨了自动化代码结构与运维系统的优化方法,涵盖审批流程的模块化设计、日志记录与工单系统的集成、通知方式的选择、错误处理的策略以及持续改进的实践。同时,深入分析了运维盲目性问题,通过故障案例揭示了关键指标缺失和日志未充分利用的弊端,提出了开发与运维角色转变的必要性。文章还介绍了如何生成有用的系统指标、建立良好的日志习惯以及实施日志聚合,以提升系统的可观测性和可靠性。最终通过总结和流程图展示了优化措施的核心要点,为构建高效、可靠的运维体系提供了指导。

pp12345的博客 71

python标准库模块_模块(python的标准库)

在python中叫做模块,其他语言中叫做类库。python中的模块有三种:内置模块,第三方模块,自定义模块。模块的使用:先导入,import+模块名,再使用,模块名+函数名().py文件与.py文件的集合文件夹和.py文件都可以称为模块导入的模块在文件夹中:import 文件夹名.文件名      #导入文件夹名.文件名.函数名()     #执行为什么使用模块:将代码归类,使代码更简洁易读。导入...

weixin_39895862的博客 323

PLC为西门子的S7-1200,舵机为 DS3218,PLC控制舵机旋转程序实现?

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 998

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Python模块详解:从基础使用到标准库应用

Python模块是代码组织和复用的基本单元,通过将相关功能封装为独立文件实现逻辑隔离。其核心原理是基于import语句的模块加载机制,支持多种导入方式满足不同场景需求。在工程实践中,模块化开发能显著提升代码可维护性和团队协作效率。Python标准库提供了os、sys、math等常用模块,覆盖文件操作、系统交互、数学计算等基础功能。对于数据处理场景,datetime和re模块分别处理时间日期和正则表达式;网络编程则依赖urllib和json模块实现HTTP请求和格式转换。掌握模块化开发思想是Python工程师

weixin_30603633的博客 461

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

上一篇: Python全栈之路标准库系列之模块默认全局变量
下一篇: Python全栈之路标准库系列之xml模块
Python老王
博客等级 码龄7年 159粉丝 224原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值