需要安装第三方库:
安装 pillow库
pip install -i https://pypi.doubanio.com/simple pillow
如何对图片进行自动下载?
首先明白,图片去哪下?图片如何下?保存到哪?
setting:
ITEM_PIPELINES = {
'ArticleSpider.pipelines.JobbolePipeline': 2,
# 注册scrapy自带的下载器,后面带的值越小越先执行
'scrapy.pipelines.images.ImageHandle': 1
}
# 指定获取图片url的字段名称
IMAGES_URLS_FIELD = "img_url"
# 指定图片的下载路径,同级目录的images目录下
project_dir = os.path.abspath(os.path.dirname(__file__))
IMAGES_STORE = os.path.join(project_dir, 'images')
如何获得图片的路径并保存?
在pipelines.py中定义一个处理图片的类,继承scrapy中处理的图片的类
from scrapy.pipelines.images import ImagesPipeline
class JobboleImagerPipeline(ImagesPipeline):
"""
获得图片下载路径
"""
def item_completed(self, results, item, info):
# 如果解析到图片的url,添加图片url字段
if 'img_url' in item:
for key, value in results:
# print(key)
img_path = value['path']
# print(value['path'])
item['img_path'] = img_path
return item