Requests库的入门


1.cmd(管理员权限)--->pip install requests

 

2.Requests库的7个方法

requests.request() 构造一个请求,支撑以下各方法的基础方法

requests.get()     获取HTML网页的主要方法,对应于HTTP的GET

requests.head()    获取HTML网页头信息的方法,对应于HTTP的HEAD

requests.post()    向HTML网页提交POST请求的方法,对应于HTTP的HEAD

requests.put()     向HTML网页提交PUT请求的方法,对应于HTTP的PUT

requests.patch()   向HTML网页提交局部修改请求,对应于HTTP的PATCH

requests.delete()  向HTML页面提交删除请求,对应于HTTP的DELETE

 

 

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

url:拟获取页面的url链接

params:url中的额外参数,字典或字节流格式,,可选

**kwargs:12个控制访问的参数

 

3.requests对象的属性

r.status_code     HTTP请求的返回状态,200表示连接成功,404表示

r.text            HTTP响应内容的字符串形式,即url对应的页面内容

r.encoding        从HTTP header中猜测的响应内容编码方式

r.apparent_encoding 从内容中分析的响应内容编码方式

r.content         HTTP响应内容的二进制形式

 

4.requests库的异常

requests.ConnectionError 网络连接错误,如DNS查询失败、拒绝连接

requests.HTTPError  HTTP错误异常

requests.URLRequired  URL缺失异常

requests.TooManyRedirects  超过最大重定向次数,产生重定向异常

requests.ConnectTimeout  连接远程服务器超时异常

requests.Timeout  请求URL超时,产生超时异常

 

5.理解requests的异常

r..raise_for_status()  如果不是200,产生异常requests.HTTPError

 

6.爬取网页通用代码

import requests
def getHTMLText(url):
    try:
        r=requests.get(url,timeout=30)
        r.raise_for_status()
        r.encoding=r.apparent_encoding
        return r.text
    except:
        return "产生异常"
 
if __name__=="__main__":
    url="http://taxq.sdust.edu.cn"
    print(getHTMLText(url))


 

7.HTTP协议

HTTP,Hypertext Transfer Protocol 超文本传输协议

HTTP是一个基于“请求与响应”模式的、无状态的应用层协议

HTTP协议采用URL作为定位网络资源的标识

 

URL格式 http://host[:port][path]

host:合法的Internet主机域名或IP地址

port:端口号,缺省端口为80

path:请求资源的路径

 

8.requests小结

requests.request()

requests.get()

requests.head()

requests.post

requests.put()

requests.patch()

requests.delete()

 

<think>好的,我需要帮助用户学习Pythonrequests的基础用法。用户要求入门教程、基础用法和示例。首先,我应该回顾requests的基本概念,然后分步骤讲解常用方法,比如GET和POST请求,处理响应,添加头信息和参数。同时,结合用户提供的引用内容,特别是引用[2]和[3],里面提到了Requests的宗旨和基本用法,可能需要引用这些内容。需要确保代码示例正确,并且符合用户的实际需求,比如发送请求、处理响应数据等。还要注意用户提到的引用[4]中的cookie处理,可能需要在适当的地方提到。另外,用户希望结构清晰,逐步解决问题,所以需要分点讲解,每个部分都给出示例代码。最后,生成相关问题,帮助用户进一步学习。需要检查是否所有数学公式都正确使用了$...$格式,但这个问题可能不涉及太多数学内容,所以可能不需要。但如果有变量或代码内的数学符号,要确保格式正确。总之,按照用户提供的系统级指令,组织内容,确保正确引用,并生成相关问题。</think># Python Requests基础教程 ## 一、环境准备 首先通过`pip`安装Requests: ```bash pip install requests ``` 验证安装是否成功: ```python import requests print(requests.__version__) # 应输出版本号如2.28.1 ``` ## 二、GET请求基础用法 ### 1. 发送简单请求 ```python import requests response = requests.get("https://www.example.com") print(response.status_code) # 输出状态码如200 print(response.text[:100]) # 打印前100字符的网页内容 ``` ### 2. 带参数请求 使用`params`参数传递查询参数: ```python params = {"key1": "value1", "key2": "value2"} response = requests.get("https://httpbin.org/get", params=params) print(response.url) # 输出完整带参数的URL ``` ## 三、POST请求基础用法 ### 1. 表单数据提交 ```python payload = {"username": "admin", "password": "123456"} response = requests.post("https://httpbin.org/post", data=payload) print(response.json()["form"]) # 返回提交的表单数据 ``` ### 2. JSON数据提交 ```python headers = {"Content-Type": "application/json"} data = {"name": "Alice", "age": 25} response = requests.post("https://httpbin.org/post", json=data, headers=headers) print(response.json()["json"]) # 返回解析后的JSON数据 ``` ## 四、响应处理技巧 ### 1. 内容解析 ```python # 获取二进制内容 image_data = requests.get("https://example.com/image.jpg").content # 解析JSON响应 json_response = requests.get("https://api.example.com/data").json() ``` ### 2. 状态码检查 ```python response = requests.get("https://example.com") if response.status_code == 200: print("请求成功") elif response.status_code == 404: print("页面未找到") ``` ## 五、进阶配置 ### 1. 自定义请求头 ```python headers = { "User-Agent": "Mozilla/5.0", "Authorization": "Bearer YOUR_TOKEN" } response = requests.get("https://api.example.com", headers=headers) ``` ### 2. Cookie处理 ```python # 自动管理Cookies with requests.Session() as s: s.get("https://example.com/login") # 后续请求自动携带cookie # 手动设置Cookie cookies = {"session_id": "abc123"} response = requests.get(url, cookies=cookies) ``` ## 六、异常处理 ```python try: response = requests.get("https://example.com", timeout=5) response.raise_for_status() # 自动抛出4xx/5xx错误 except requests.exceptions.RequestException as e: print(f"请求发生错误: {e}") ``` [^1]: Requests简化了HTTP请求的发送过程,让开发者更专注于业务逻辑处理 [^2]: 通过Session对象可以保持跨请求的Cookie和配置参数 [^3]: 响应对象的text属性会自动根据字符编码解码内容 [^4]: 使用response.json()方法可以快速解析JSON格式的响应内容
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mind_programmonkey

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值