重试机制
1.retrying模块:Retrying 是一个使用Python编写的通用重试库,用于简化向几乎所有内容添加重试行为的任务
python中的retrying模块提供的retry方法,可以直接以语法糖的形式装饰给需要重试的函数
@retry —— 这样的写法等于永久性的重试
2.安装Retrying模块:
Windows:pip install retrying
Mac:pip3 install retrying
3.@retry中常用属性
①stop_max_attempt_number=5:最多重试5次
②wait_fixed=2000:等待两秒再重试
③wait_random_min=1000, wait_random_max=3000:最少等待1秒,最多等待3秒,在
import requests
from retrying import retry
@retry(stop_max_attempt_number=5, wait_random_min=1000, wait_random_max=3000)
def requests_get(href):
print('正在请求或正在重试', href)
response = requests.get(url=href)
print(response)
URL_List = [
'https://www.baidu.com/',
'https://jd.com/',
'https://a123b.123/',
'https://www.taobao.com/'
]
for i in URL_List:
requests_get(i)
运行结果:正在请求或正在重试 https://www.baidu.com/
<Response [200]>
正在请求或正在重试 https://jd.com/
<Response [200]>
正在请求或正在重试 https://a123b.123/
正在请求或正在重试 https://a123b.123/
正在请求或正在重试 https://a123b.123/
正在请求或正在重试 https://a123b.123/
正在请求或正在重试 https://a123b.123/
请求缓存
1.缓存(cache)
requests-cache模块:可以借助install_cache方法在本地留存请求网站的缓存,当有了这个网站的缓存以后,再次请求此网站,优先使用缓存下载的网页内容缓存内容会以sqlite文件的形式保存
2.安装requests-cache模块
Windows:pip install requests-cache
Mac:pip3 install requests-cache
import requests
import requests-cache
requests_cache.install_cache(cache_name='cache_file')
URL = 'https://movie.douban.com/top250?start=0'
Headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36'
}
response = requests.get(url=URL, headers=Headers)
print(response.status_code)
print(response.text)