Python的requests库使用总结

在这里插入图片描述​ 

活动地址:CSDN21天学习挑战赛

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。

学习日记

目录

学习日记

一、requests库基础

1、requests库概念

2、requests库安装与导入

3、常用属性或方法

二、七个主要使用方法

1、requests.request(method, url, **kwargs)

2、requests.get(url, params=None, **kwargs)

3、requests.post(url, data=None, json=None, **kwargs)

4、requests.Session

5、 kwargs 参数表

6、响应内容

三、requests库的基本语法

1、requests库语法的一种类型与六种属性

四、requests库的get请求 

五、requests库的post请求

六、超时参数timeout的使用


一、requests库基础

1、requests库概念

    requests库是基于Python开发的HTTP库,它能节省大量的工作,实际上,requests是在urllib的基础上进行了高度的封装,它不仅继承了urllib的所有特性,而且还支持一些其他的特性。其支持许多 HTTP 特性,可以非常方便地进行网页请求、网页分析和处理网页资源,拥有许多强大的功能。

2、requests库安装与导入

安装requests库: Windows+r 打开运行控制框,输入 cmd,进入命令行,输入:

pip install requests

Python的requests库使用总结_第1张图片Python的requests库使用总结_第2张图片 导入

import requests

3、常用属性或方法

Python的requests库使用总结_第3张图片

 例如查看百度页面源码

import requests#导入requests

url = "http://www.baidu.com/"# 目标网址

response = requests.get(url)# 发送请求

print(type(response))# 查看响应对象的类型

print(response.status_code)# 查看响应状态码

print(type(response.text))# 查看响应内容的类型

print(response.cookies)# 查看cookies

print(response.text)# 查看响应的内容

二、七个主要使用方法

Python的requests库使用总结_第4张图片

1、requests.request(method, url, **kwargs)

method 设置请求方式(get、post、put、head、patch、delete)

url 设置请求地址

kwargs 控制访问参数

2、requests.get(url, params=None, **kwargs)

url 设置请求地址。一般地址中问号后面的可以省略,问号后面的即是请求参数。

params 设置发送请求时所带的参数,字典或字节流格式,作为额外参数连接到url中(问号后的部分)。

kwargs 控制访问参数,见 kwargs参数表。

3、requests.post(url, data=None, json=None, **kwargs)

url 设置请求地址。

data 为字典、字节序列或文件对象,作为请求的内容,向服务器提交资源时使用。

json 为 JSON格式的数据,作为内容向服务器提交。

kwargs 控制访问参数,见 kwargs参数表。

4、requests.Session

Session 方法可以实现回话,持续性地发送requests请求,能够跨请求保持cookie。

5、 kwargs 参数表

Python的requests库使用总结_第5张图片

6、响应内容

发送请求后,返回的是一个 response 对象。Python的requests库使用总结_第6张图片

三、requests库的基本语法

1、requests库语法的一种类型与六种属性

requests库获取的服务器响应是requests.models.Response的类型

我们用requests库模拟浏览器,向服务器发起一次普通的请求,这次请求只是为了辅助下面的六种属性

import requests
 
url = 'http://www.baidu.com'
 
response = requests.get(url = url)

用requests库时,我们发起请求是通过requests.get()函数进行的,传参是目的网页的url,并且用response变量接受服务器的响应。 

text属性:字符串形式返回网页源码(由于 此时编码格式是gbk,中文部分可能会乱码。
# text属性:以字符串形式返回网页源码
print(response.text) 
encoding属性:设置相应的编码格式
# 设置相应的编码格式:
response.encoding = 'utf-8'
#这之后的response就不会出现中文乱码现象

url属性:返回url地址

# 返回url地址
url = response.url

 content属性:返回二进制的数据

#返回二进制的数据
content_binary = response.content

 status_code属性:返回状态码 200是正常

# 返回状态码 200是正常
status_code = response.status_code

headers属性:返回响应头

#返回响应头
headers = response.headers

四、requests库的get请求 

语法格式

requests.get(ur1, headers=headers)
import requests
url = 'https://www.baidu.com/s?'
 
headers = {
                'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36'
         }
 
data = {
    'wd' : '水岸东方'
}

response = requests.get(url = url,params = data,headers = headers)
response.encoding = 'utf-8'
content = response.text 
print(content)
 

五、requests库的post请求

语法格式

response = requests.post(url, data) # data参数接收一个字典
# requests_post请求
import requests
import json
 
url = 'https://fanyi.baidu.com/sug'
 
headers = {
                'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36'
         }
 
data = {
    'kw' : 'eye'
}
 
 
response = requests.post(url = url,data = data,headers = headers)
 
content = response.text
 
obj = json.loads(content.encode('utf-8'))
 
print(obj)

# url:请求路径
# data:请求参数
# json数据
# kwargs:字典

六、超时参数timeout的使用

使用方法

response = requests.get(ur1, timeout=3)
import requests

url = "https://www.baidu.com/"# 目标网址

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36'
}

try:
    response = requests.get(url, headers=headers, timeout=10)  # 超时设置为10秒
except:
    for i in range(4):  # 循环去请求网站
        response = requests.get(url, headers=headers, timeout=20)
        if response.status_code == 200:
            break
html_str = response.text

你可能感兴趣的:(Python,python)