Requests库
Requests库
概述
简介:Requests库是Python的第三方库。 Requests库官网:http://www.python-requests.org
Requests库的安装
- 以管理身份运行command控制台。
-
pip install requests
Requests库的2个重要对象
1.Response:
Response对象包含爬虫返回的内容。r--->变量
属性 | 说明 |
r.status_code | HTTP请求的返回状态,200表示连接成功,404表示连接失败 |
r.text | HTTP响应内容的字符串形式,即,url对应的页面内容 |
r.encoding | 从HTTP header中猜测的响应内容编码方式【如果header中不存在charset,则认为编码为ISO-8859-1】 |
r.apparent_encoding | 从内容中分析出的响应内容编码方式(备选编码方式) |
r.content | HTTP响应内容的二进制形式 |
异常 | 说明 |
requests.ConnectionError | 网络连接错误异常,如DNS查询失败,拒绝连接等 |
requests.HTTPError | HTTP错误异常 |
requests.URLRequired | URL缺失异常 |
requests.TooManyRedireets | 超过最大重定向次数,产生重定向异常 |
requests.ConnectTimeout | 连接远程服务器超时异常 |
requests.Timeout | 请求URL超时,产生超时异常 |
r.raise_for_status() | 如果不是200,产生异常requests.HTTPError |
2.Requests方法:
方法 | 说明 | |
requests.request() | 构造一个请求,支撑以下各方法的基础方法。 | |
requests.get() | 获取HTML网页的主要方法,对应于HTTP的GET | requests.get(url, params=None, **kwargs) |
requests.head() | 获取HTML网页头信息的方法,对应HTTP的HEAD | requests.head(url, **kwargs) |
requests.post() |
向HTML网页提交POST请求的方法,对应HTTP的POST |
requests.post(url, data = None, json =None, **kwargs) |
requests.put() |
向HTML网页提交PUT请求的方法,对应HTTP的PUT | requests.put(url, data = None, **kwargs) |
requests.patch() | 向HTML网页提交局部修改请求,对应于HTTP的PATCH | requests.patch(url, data = None, **kwargs ) |
requests.delete() |
向HTML网页提交删除请求,对应于HTTP的DELETE |
requests.delete(url, **kwargs) |
requests.request(method, url, **kwargs) method:请求方式,对应get/put等7种。 url:拟获取网页的url链接
**kwargs:控制访问的参数,均为可选项
1.params:字典或字节序列,作为参数增加到url中
kv = {'key1': 'value1', 'key2': 'value2'}
r = requests.request('GET', 'http://python123.io/ws', params=kv)
print(r.url)
http://python123.io/ws?key1=value1&key2=value2
2.data:字典、字节序列或文件对象,作为Request的内容
kv = {'key1': 'value1', 'key2': 'value2'}
r = requests.request('POST', 'http://python123.io/ws', data=kv)
body = '主体内容'
r = requests.request('POST', 'http://python123.io/ws', data=body)
3.json:JSON格式的数据,作为Request的内容
kv = {'key1': 'value1'}
r = requests.request('POST', 'http://python123.io/ws', json= kv)
4,headers:字典,HTTP定制头
hd = {'user-agent': 'Chrome/10'}
r = requests.request('POST', 'http://python123.io/ws', headers = hd)
5.cookies:字典或CookieJar, Request中的cookie
6.auth:元组,支持HTTP认证功能
7.files:字典类型,传输文件
fs = {'file':open('data.xls', 'rb')}
r = requests.request('POST', 'http//python123.io/ws', files = fs)
8.timeout:设定超时时间,秒为单位
r = requests.request('GET', 'http://www.baidu.com', timeout=10)
9.proxies:字典类型,设定访问代理服务器,可以增加登录认证
pxs = {'http': 'http://user:pass@10.10.10.1:1234'
'https': 'https://10.10.10.1:4321' }
r = requests.request('GET', 'http://www.baidu.com', proxies=pxs)
10.allow_redirects:True/False,默认为True,重定向开关
11.stream:True/False,默认为True,获取内容立即下载开关
12.verify:True/False,默认为True,认证SSL证书开关
13.cert:本地SSL证书路径

import requests
def getHTMLText(url):
try:
r = requests.get(url, timeout=30)
r.raise_for_atatus() #如果状态不是200,引发HTTPError异常
r.encoding = r.apparent_encoding
return r.text
except:
return "产生异常"
if __name__ == "__main__":
url = "http://www.baidu.com"
print(getHTMLText(url))
协议
1.HTTP协议:
https://www.runoob.com/http/http-tutorial.html
HTTP,Hypertext Transfer Protocol,超文本传输协议。
HTTP是一个基于“请求与响应”模式的、无状态的应用层协议。
HTTP协议采用URL作为定位网络资源的标识。
URL格式 http://host[:port][path] host:合法的Internet主机域名或IP地址 port:端口号,默认端口80 path:请求资源的路径
URL是通过HTTP协议存取资源的Internet路径,URL对应一个数据资源。
2.Robots协议:
https://baike.baidu.com/item/robots%E5%8D%8F%E8%AE%AE/2483797?fr=aladdin
网络爬虫排除标准
作用:网络告知网络爬虫哪些页面可以抓取,哪些不行。
形式:在网络根目录下的robots.txt文件。
使用:
网络爬虫:自动或人工识别robots.txt,再进行内容爬取
约束性:Robots协议是建议但非约束性,网络爬虫可以不遵守,但存在法律风险。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」