Python之Scrapy海报资源海量下载

  • 2019 年 12 月 18 日
  • 笔记

简介

今天小编给大家带来的是使用 Python 的 scrapy 框架快速写一个“千图网”的海报原图下载的爬虫,可以给设计专业的相关的人下载图片参考设计海报,也可在活动时,直接下载海报使用,目标“http://www.58pic.com/piccate/3-0-0-default-0_2_0_0_default_0-1.html

开发环境

及配置

创建文件在“Python之Scrapy框架当当网口红爬虫”这篇中讲过,在此不重复。

创建项目文件

创建文件在“Python之Scrapy框架当当网口红爬虫”这篇中讲过,在此不重复。

项目文件简介

创建文件在“Python之Scrapy框架当当网口红爬虫”这篇中讲过,在此不重复。

item.py编写

settings.py配置

一、配置爬虫是否遵守 robot 协议,默认是遵守,如下图

要改为不遵守,把 True 改为 False,如下图

二、cookies 配置,为了让浏览器不能识别我们 本地的 cookies,识别不出是爬虫行为,如下图

把注释删掉就启动了

三、piplines.py 实体管道的开启,同上理,把注释删掉

piplines.py编写

这里只有一个函数,就是专门下载图片的函数,关键步骤已经给出注释

在分析海报的 url 时,我们在源代码中看到的是缩略图的 url,要想找到原图 url 只需要点开这个海报打开对应的所在网址,在图片那里单击右键复制‘复制图片地址’,并不是原图的 url,缩略图并没有原图清晰,我们要处理缩略图的 url,缩略图与原图的url 是有着规律的,找到规律就行,在我的源码项目里面的 ‘url_comparison.txt’ 有说明

创建下载地址,下载图片,用了一个异常防止一个下载失败,而程序终止

kouhong.py编写

这里是爬取缩略图 url 以及海报所对应的名称,使用 xpath 提取

在爬取缩略图 url 时要注意,每一页有 35 个海报,前 12 张与后 23 张海报的提取 url 的属性是不同的,我们要分开提取,然后合并成一个列表,属性如下图,第一张为前 12 张的 url 属性,第二章为后 23 张的 url 属性,虽然第二张图我们可以看到也有 ‘src’ 属性,但提取返回的结果是错误的

测试运行

附录

当然这个姿势电商海报的下载,还可以下载ppt,word模板,设计元素等