离上次写文章已经有小半个月了,但是:
没有动态的日子里,都在努力生活❤️;发表动态的日子里,都在热爱生活。🌹
目录
- 一、python集成工具的分类:
- 1.解释Requests
- 2. Requests
- 3. Response对象的属性
- 4. 理解Requests库的异常:
- 5. 框架
一、python集成工具的分类:
python的集成工具:
文本工具类IDE | 集成工具类IDE |
---|---|
IDLE | Pycharm |
Notepad++ | Wing |
Sublime Text | PyDev & Eclipse |
Vim & Emacs | Visual Studio |
Atom | Anaconda & Spyder |
Komodo Edit | Canopy |
推荐使用的是:Sublime Text
、Wing
、Pycharm
、Anaconda
(科学计算机和数据分析的专题)
学习框架
:
1.解释Requests
Requests 是一个非常流行的 Python 库,用于发送 HTTP 请求。它简化了与 web 服务进行交互的过程,使得开发者能够轻松地获取网页内容、与其他 API 通信或执行任何需要网络请求的任务。Requests 库以其简洁的 API 和广泛的功能集而受到青睐,这些特点使得进行网络请求变得直观且高效。
- 主要特点包括:
- 易于使用:提供简单的函数接口,如
get()
、post()
等,来发送不同类型的 HTTP 请求。 - 自动处理重定向:遇到 HTTP 重定向时自动跟随跳转。
- 请求与响应对象:对每个请求和响应都提供了对象,可以方便地访问状态码、 headers、cookies、内容等信息。
- 会话管理:支持通过
Session
对象来保持会话,这样可以跨请求保持 cookies,模拟登录状态。 - 内容编码处理:自动处理 gzip 和 deflate 压缩的内容。
- JSON 数据处理:直接将 JSON 格式的响应体解码为 Python 字典。
- 支持文件上传和下载:可以方便地上传文件或下载网络资源。
- 举例说明
假设我们要使用 Requests 库来获取一个网页的 HTML 内容,比如获取 GitHub 首页的源代码:
import requests
# 发送 GET 请求到指定的 URL
response = requests.get('https://github.com')
# 检查请求是否成功(HTTP 状态码为 200 表示成功)
if response.status_code == 200:
# 打印网页的 HTML 内容
print(response.text)
else:
print(f"请求失败,状态码:{response.status_code}")
在这个例子中,我们首先导入了 requests
库,然后使用 get()
函数向 ‘https://github.com’ 发送了一个 GET 请求。接着,我们检查了响应的状态码,如果是 200,则表示请求成功,进而打印出网页的 HTML 源代码。如果状态码不是 200,就打印出失败的状态码。这就是使用 Requests 库进行网络请求的一个基本示例。
2. Requests
-
自动爬取HTML页面,自动网络请求提交
-
最常用的是get请求方法
方法 | 说明 |
---|---|
requests.request() | 构造一个请求,支撑以下各方法的基础方法 |
requests.get() | 获取html网页的主要方法,对应于http的get |
requests.head() | 获取html网页头信息的方法,对应于http的head |
requests.post() | 向html网页提交post请求的方法,对应于http的post |
requests.put() | 向html网页提交put请求的方法,对应于http的put |
requests.patch() | 向html网页提交局部修改请求,对应于http的patch |
requests.delete() | 向html页面提交删除请求,对应http的delete |
3. Response对象的属性
- 请求:获取html网页
属性 | 说明 |
---|---|
r.statu_code | http请求的返回状态,200表示连接成功,其他表示失败或者另有原因 |
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超时,产生超时异常 |
r.raise_for_status() 【response】 | 如果不是200,产生异常requests.HTTPError |
5. 框架
import requests
def getHTMLText(url):
try:
r=requests.get(url,timeout=30)
# 如果状态不是200,引发HTTPError异常
r.raise_for_status()
r.encoding=r.apparent_encoding
return r.text
except:
return "产生异常"
if __name__ == "__mian__":
url="http://www.baidu.com"
print(getHTMLText(url))
在此有话:
在这最近的生活中,对生活的迷茫,对未来前进的方向怀疑,对现在的状态感到有愧。想明白了:”时间是最宝贵的“。在此,我不断地浪费真的感到不值得。就像这首《无名的人》一样,经历的生活的沧桑,经历了时间的成长。在每份艰苦中脱出。我想在在未来,我会努力往自己想要的前进。愿大家和我一样,快速找到自己的目标,向未来前进。谢谢大家!