第十篇 requests模块
发布日期:2021-08-14 08:22:11 浏览次数:5 分类:技术文章

本文共 2519 字,大约阅读时间需要 8 分钟。

1.安装requests

要安装requests,在终端中输入以下命令即可安装:

1 pip3 install  requests

2.发送请求

使用requests发送请求首先需要导入requests模块,然后发送get请求到网站:

1 import requests2 3 r = requests.get("http://www.baidu.com")

发送其他类型的请求:

1 import requests2 3 r = requests.post("http://www.xxx.com", data={
"key": "value"})4 r = requests.put("http://www.xxx.com/method", data={
"key": "value"})5 r = requests.delete("http://www.xxx.com/delete")6 r = requests.head("http://www.xxx.com/get")7 r = requests.options("http://www.xxx.com/get")

3.传递URL参数

如果希望为URL的查询字符串传递数据,Python提供了支持,数据会议键/值对的形式置于URL中,跟在一个问号后面。

1 import requests2 3 r = requests.get("http://www.baidu.com/s", params={
"wd": "Python"})4 5 print(r.url)6 7 -------输出结果---------8 http://www.baidu.com/s?wd=Python

4.状态码

从请求的响应中获取状态码,状态码会展示请求的状态。

如,状态码为200 OK表示请求成功,404 NOT FOUND表示找不到资源,可以通过response对象的.status_code查看返回的状态码:

1 In [1]: import requests2 3 In [2]: r = requests.get("http://www.baidu.com")4 5 In [3]: r.status_code6 Out[3]: 200

4.获取响应内容

我们可以读取服务器响应的内容。

1 import requests2 3 r = requests.get("http://www.baidu.com")4 r.encoding = "utf-8"5 print(r.text)

说明:r.text返回的是Unicode格式,通常需要转换为utf-8,不然的话,会是乱码,通过使用r.encoding='utf-8',可以避免乱码的问题。

 5.获取二进制响应内容

1 import requests2 3 r = requests.get("http://www.baidu.com")4 print(r.content)5 print(r.content.decode("utf-8"))

r.content获取二进制数据,可以用来下载视频,图片之类,如果想要看的话,可以使用r.content.decode()解码。

6.获取JSON格式内容

1 import requests2 3 r = requests.get("http://www.xxx.com")4 print(r.json())

使用r.json处理json数据。

7.定制请求头

当我们使用如下方式访问知乎时,是无法访问的,需要添加headers信息。

1 r = requests.get("https://www.zhihu.com") 2 r.encoding = "utf-8" 3 print(r.text.encode("gbk", "ignore").decode("gbk")) 4  5 ------输出结果------ 6  7 400 Bad Request 8  9 

400 Bad Request

10

openresty
11 12

想要访问就必须添加headers信息:

1 import requests2 3 headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko"}4 r = requests.get("https://www.zhihu.com", headers=headers)5 6 r.encoding = "utf-8"7 print(r.text.encode("gbk", "ignore").decode("gbk"))

 8.发送post请求

1 import requests 2  3 data = { 4     "name": "zhangsan", 5     "age": "28" 6 } 7  8 r = requests.post("http://httpbin.org/post", data=data) 9 10 print(r.text)

9.响应

1 # -*- coding:utf-8 -*- 2 import requests 3  4 r = requests.get("http://www.baidu.com") 5 # 输出请求页面的状态码 6 print(r.status_code) 7 # 输出请求页面的所有请求头信息 8 print(r.headers) 9 # 输出请求的cookies信息10 print(r.cookies)11 # 输出请求的地址12 print(r.url)13 # 打印请求的历史记录14 print(r.history)

 

转载于:https://www.cnblogs.com/zhuzhaoli/p/10368396.html

转载地址:https://blog.csdn.net/weixin_30715523/article/details/96260605 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Java 线程池(ThreadPoolExecutor)原理解析
下一篇:HD1013Digital Roots

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年03月04日 07时52分51秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

android 限速工具,Android下载器之限速篇 2019-04-21
html刷新ajax实现原理,AJAX的原理—如何做到异步和局部刷新 2019-04-21
html中列表菜单加文字请选择,html中下拉菜单 2019-04-21
读书郎平板中android,读书郎学生平板电脑怎么用 使用方法详解【图文】 2019-04-21
html5 调用摄像头 支持IE,JS调用本地摄像头拍照(兼容各大浏览器及IE8+) 2019-04-21
rust和gta5哪个吃配置_盘点4款Steam“自由度”很高的游戏,GTA5众所周知,目前最热门... 2019-04-21
es审计日志_elasticsearch 事务日志translog 2019-04-21
dw1510_超低温种子储存柜 2019-04-21
文件未找到mathpage.wll_解决MathPage.wll文件找不到的问题(找了好久的良心之作)... 2019-04-21
java 使用或覆盖了已过时的api_JAVA使用或覆盖了已过时的 API 2019-04-21
java 图片旋转保存_Java 对图片90度旋转 2019-04-21
用java实现文学研究助手_数据结构文学研究助手 C语言代码实现(带源码+解析)... 2019-04-21
java gc的几种方式_GC 的三种基本实现方式 2019-04-21
wget linux java 32_通过wget在Linux上下载Java JDK会显示在许可证页面上 2019-04-21
babylonjs 设置面板位置_babylonjs 空间坐标转为屏幕坐标 2019-04-21
oracle里面如何查询sqlid,CSS_oracle中如何查看sql, --查询表状态:  select uo.O - phpStudy... 2019-04-21
oracle 查询中用case,oracle case when 在查询时候的用法。 2019-04-21
oracle正在运行的程序包,ORACLE PL/SQL编程详解之程序包的创建与应用 2019-04-21
php局部页面滚动,在访问另一页面后保留浏览器滚动位置 - php 2019-04-21
jmeter运行linux命令行,Jmeter在linux上运行(命令行运行Jmeter) 2019-04-21