requests库入门

1.requests库的安装

1.使用pip install requests;
在这里插入图片描述

2.使用pycharm安装requests库(可见本人的视频资源);

pycahrm安装requests库

2.requests库的get方法使用

r = requests.get(url)

在这里构成了一个向服务器请求资源的Requests对象;
这里的r返回包含服务器资源的Response对象;

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

url : 拟获取页面的url链接
params : url中的额外参数,字典或字节流格式,可选
**kwargs : 12个控制访问的参数
我们来看下requests库的get方法源代码:

def get(url, params=None, **kwargs):
    r"""Sends a GET request.

    :param url: URL for the new :class:`Request` object.
    :param params: (optional) Dictionary, list of tuples or bytes to send
        in the query string for the :class:`Request`.
    :param \*\*kwargs: Optional arguments that ``request`` takes.
    :return: :class:`Response <Response>` object
    :rtype: requests.Response
    """

    kwargs.setdefault('allow_redirects', True)
    return request('get', url, params=params, **kwargs)

我们可以看到get()使用requests()来封装,requests库一共7个常用方法除了requests()外其余的6个方法均用requests()来封装。
Requests库的两个重要对象分别是Requests对象和Response对象,其中Response对象包含了爬虫返回的信息。
在这里插入图片描述

我们使用r.status_code返回状态码,如果返回的状态码时200则表示访问成功,否则访问失败;
type()表示返回额是一个Response类;
r.headers表示返回请求页面的头部信息;

属性说明
r.status_codeHTTP请求的返回状态,200表示连接成功,404表示链接失败
r.textHTTP响应内容的字符串形式,即,url对应的页面内容
r.encodingHTTP header猜测的响应内容编码方式
r.apparent从内容分析出响应内容的编码格式
r.contentHTTP响应内容的二进制格式

3.爬取网页通用代码框架

import requests
def getHTMLText(url):
    try:
        r = requests.get(url,timeout=30)
        r.raise_for_status() # 如果状态不是200,则会引发HTTPError异常
        r.encoding = r.apparent_encoding
        return r.text
    except:
        return "产生异常"

if __name__=="__main__":
    url = "http://www.baidu.com"
    print(getHTMLText(url))
<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
发出的红包

打赏作者

qq_2415200549

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

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

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

打赏作者

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

抵扣说明:

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

余额充值