首页 > 其他 > 详细

scrapy中ImagePipeline及图片懒加载

时间:2021-05-04 17:36:30      阅读:23      评论:0      收藏:0      [点我收藏+]
  • 在网页源码中,在img标签中首先会使用一个“伪属性”(通常使用src2,original......)去存放真正的图片链接而并非是直接存放在src属性中。当图片出现到页面的可视化区域中,会动态将伪属性替换成src属性,完成图片的加载。爬虫是使用伪属性解析。

  • ImagesPipeline:
  • class QiushiImagePipeline(ImagesPipeline):
    
        # 下载图片时加入referer请求头
        def get_media_requests(self, item, info):
            for image_url in item[‘image_urls‘]:
                headers = {‘referer‘:item[‘referer‘]}
                yield Request(image_url, meta={‘item‘: item}, headers=headers)
                # 这里把item传过去,因为后面需要用item里面的书名和章节作为文件名
    
        # 获取图片的下载结果, 控制台查看
        def item_completed(self, results, item, info):
            image_paths = [x[‘path‘] for ok, x in results if ok]
            if not image_paths:
                raise DropItem("Item contains no images")
            return item
    
        # 修改文件的命名和路径
        def file_path(self, request, response=None, info=None):
            item = request.meta[‘item‘]
            image_guid = request.url.split(‘/‘)[-1]
            filename = ‘./{}/{}‘.format(item[‘title‘], image_guid)
            return filename

scrapy中ImagePipeline及图片懒加载

原文:https://www.cnblogs.com/ajiling/p/14729609.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!