问题篇
一、如何判断list列表是否为空
使用len列表长度判断:
if len(list_test):
print('list_test 为空')
二、PIL.UnidentifiedImageError: cannot identify image file <_io.BytesIO object at 0x000001
此问题一般出在get到图片链接,准备将图片转化的时候。
原因可能是以下几种:
1.模块没有安装正确
2.导包的问题,没有正确导包
【远古时代的代码用的是import Image ,现在Image已经被并入PIL库,所以要从PIL中import。即from PIL import Image】【还可以尝试卸载pip uninstall pillow重新安装pillow库 pip install pillow】
3.图片问题,导致没法识别读取
【这里自己碰到一个问题,没有解决:小姐姐网站有些图片是从其他网站图库出来的,图片并不算很大,但是加载的时候,图片是一行行显示的,导致无法image.open】
4.常规request.get(url=url,headers=headers)出现错误
requests.exceptions.SSLError: HTTPSConnectionPool
原因:这个网站是https的网站,当指定的headers的user-agent时,网站的服务器会重定向,因此报出SSL验证失败的错误。
解决方案:改为response = requests.get(url=url, verify=False)
5.同上,爬https网站正常爬到东西了,但是一堆警告信息
InsecureRequestWarning: unverified HTTPS request is being made to host
原因:urlib3 基于证书验证的级别出发不同的警告,比如说 InsecureRequestWarning ,没有验证的时候回出现这个警告。当然,未经验证的HTTPS URL时不被提倡的,如果你想强制取消警告,你可以使用 “disable_warnigns():”
解决方案:在开头添加
import urllib3
urllib3.disable_warnings()
6.爬网站一段时间出现:requests.exceptions.ConnectionError
原因:程序请求速度过快
解决方案:time.sleep()