
网络爬虫-----Requests库入门
发送请求: 查看状态码:
发布日期:2021-05-14 16:07:50
浏览次数:20
分类:精选文章
本文共 2466 字,大约阅读时间需要 8 分钟。
#Requests库入门
##1. requests.get()使用
requests.get()
是 requests
库中最常用的方法,用于发送 GET 请求。其基本语法如下:
requests.get(url)
###参数说明
- url:需要获取的页面 URL 地址。
- response对象的属性:
r.encoding
:如果 response 头部中没有charset
,则默认编码为 ISO-8859-1。r.apparent_encoding
:根据网页内容分析出的实际编码方式。r.text
:网页内容的文本形式。r.content
:网页内容的二进制形式。
###使用流程
response = requests.get(url)
if response.status_code == 200: # 获取网页内容 text = response.text encoding = response.encoding apparent_encoding = response.apparent_encoding content = response.contentelse: # 例如 404 或其他错误状态码 raise Exception("请求失败")
##2. 常见异常类型`requests` 库定义了七种异常类,分别用于不同类型的错误处理:1. **HTTPError**:表示请求返回了非 2xx 状态码。2. **ConnectionError**:表示无法与服务器连接。3. **Timeout**:表示请求超时。4. **NotImplementedError**:用于未实现的异常。5. **ParseError**:表示解析错误。6. **RequestException**:请求过程中的异常。7. **URLError**:表示 URL 解析失败。##3. HTTP协议及 `requests` 库方法###HTTP协议- **URL 格式**: ```http://host[:port][path]``` - **host**:合法的互联网主机名或 IP 地址。 - **port**:端口号,默认为 80。 - **path**:请求资源的路径。###`requests` 库的主要方法`requests` 库提供了多种方法来发送 HTTP 请求,常用的有 `get`、`post`、`put`、`delete` 等。####`requests.request(method, url, **kwargs)`- **method**:请求方法,例如 `GET`、`POST`、`PUT` 等。- **url**:请求的 URL 地址。- **kwargs**:可选参数,包括: - **params**:字典或字节序列,作为 URL 参数。 - **data**:字典、字节序列或文件,作为请求内容。 - **json**:JSON 格式的数据,作为请求内容。 - **headers**:字典,用于定制 HTTP 头。 - **cookies**:字典或 CookieJar,用于管理 Cookie。 - **auth**:元组,用于 HTTP 认证。 - **files**:字典,用于上传文件。 - **timeout**:请求超时时间(秒)。 - **proxies**:字典,用于设置代理服务器。 - **allow_redirects**:布尔值,控制是否允许重定向。 - **stream**:布尔值,控制内容是否立即下载。 - **verify**:布尔值,控制 SSL 证书验证。 - **cert**:本地 SSL 证书路径。####`requests.get(url, params=None, **kwargs)`- **url**:请求的 URL 地址。- **params**:字典或字节序列,用于 URL 参数。- **kwargs**:可选参数,与 `requests.request` 相同。####`requests.head(url, **kwargs)`- **url**:请求的 URL 地址。- **kwargs**:可选参数,与 `requests.request` 相同。####`requests.post(url, data=None, json=None, **kwargs)`- **url**:请求的 URL 地址。- **data**:字典、字节序列或文件,作为请求内容。- **json**:JSON 格式数据,作为请求内容。- **kwargs**:可选参数,与 `requests.request` 相同。####`requests.put(url, data=None, **kwargs)`- **url**:请求的 URL 地址。- **data**:字典、字节序列或文件,作为请求内容。- **kwargs**:可选参数,与 `requests.request` 相同。####`requests.patch(url, data=None, **kwargs)`- **url**:请求的 URL 地址。- **data**:字典、字节序列或文件,作为请求内容。- **kwargs**:可选参数,与 `requests.request` 相同。####`requests.delete(url, **kwargs)`- **url**:请求的 URL 地址。- **kwargs**:可选参数,与 `requests.request` 相同。##内容参考- 使用 `requests.get()` 获取网页内容。- 理解 `requests` 库中的异常类型。- 学习 `requests` 库的多种请求方法。