使用Scrapy爬虫抓取英雄联盟高清桌面壁纸

源码地址:https://github.com/snowyme/loldesk

开始项目前需要安装python3和Scrapy,不会的自行百度,这里就不具体介绍了

首先,创建项目

scrapy startproject loldesk

生成项目的目录结构

首先需要定义抓取元素,在item.py中,我们这个项目用到了图片名和链接

import scrapyclass LoldeskItem(scrapy.Item):name = scrapy.Field()ImgUrl = scrapy.Field()pass

接下来在爬虫目录创建爬虫文件,并编写主要代码,loldesk.py

import scrapy
from loldesk.items import LoldeskItemclass loldeskpiderSpider(scrapy.Spider):name = "loldesk"allowed_domains = ["www.win4000.com"]# 抓取链接start_urls = ['http://www.win4000.com/zt/lol.html']def parse(self, response):list = response.css(".Left_bar ul li")for img in list:imgurl = img.css("a::attr(href)").extract_first()imgurl2 = str(imgurl)next_url = response.css(".next::attr(href)").extract_first()if next_url is not None:# 下一页yield response.follow(next_url, callback=self.parse)yield scrapy.Request(imgurl2, callback=self.content)def content(self, response):item = LoldeskItem()item['name'] = response.css(".pic-large::attr(title)").extract_first()item['ImgUrl'] = response.css(".pic-large::attr(src)").extract()yield item# 判断页码next_url = response.css(".pic-next-img a::attr(href)").extract_first()allnum = response.css(".ptitle em::text").extract_first()thisnum = next_url[-6:-5]if int(allnum) > int(thisnum):# 下一页yield response.follow(next_url, callback=self.content)

图片的链接和名称已经获取到了,接下来需要使用图片通道下载图片并保存到本地,pipelines.py:

from scrapy.pipelines.images import ImagesPipeline
from scrapy.exceptions import DropItem
from scrapy.http import Request
import reclass MyImagesPipeline(ImagesPipeline):def get_media_requests(self, item, info):for image_url in item['ImgUrl']:yield Request(image_url,meta={'item':item['name']})def file_path(self, request, response=None, info=None):name = request.meta['item']name = re.sub(r'[?\\*|“<>:/()0123456789]', '', name)image_guid = request.url.split('/')[-1]filename = u'full/{0}/{1}'.format(name, image_guid)return filenamedef item_completed(self, results, item, info):image_path = [x['path'] for ok, x in results if ok]if not image_path:raise DropItem('Item contains no images')item['image_paths'] = image_pathreturn item

最后在settings.py中设置存储目录并开启通道:

# 设置图片存储路径
IMAGES_STORE = 'F:/python/loldesk'
#启动pipeline中间件
ITEM_PIPELINES = {'loldesk.pipelines.MyImagesPipeline': 300,
}

在根目录下运行程序:

scrapy crawl loldesk

大功告成!!!一共抓取到128个文件夹

爬取性感女神照片教程,请移步:

https://blog.csdn.net/ziwoods/article/details/84334263

python3爬虫之使用Scrapy框架爬取英雄联盟高清桌面壁纸相关推荐

  1. python桌面爬虫_Python3爬虫爬取英雄联盟高清桌面壁纸功能示例【基于Scrapy框架】...

    本文实例讲述了Python3爬虫爬取英雄联盟高清桌面壁纸功能.分享给大家供大家参考,具体如下: 使用Scrapy爬虫抓取英雄联盟高清桌面壁纸 源码地址:https://github.com/snowy ...

  2. Python爬虫实战| Python爬取英雄联盟高清壁纸

    先看一下最终爬取的效果,每个英雄的壁纸都被爬取下来了: "黑暗之女 安妮"的12张壁纸: 高清大图: 下面开始正式教学! 版本:Python 3.5 工具:Jupyter note ...

  3. 还愁没壁纸?Python爬取5K分辨率高清桌面壁纸

    2019独角兽企业重金招聘Python工程师标准>>> 前言 相信大家都很需要哪些既好看又能符合自己当时的心情的高清壁纸,很多时候壁纸反应我们当时的心情,一张好的壁纸就一道靓丽的风景 ...

  4. python爬虫教程:Scrapy框架爬取Boss直聘网Python职位信息的源码

    今天小编就为大家分享一篇关于Scrapy框架爬取Boss直聘网Python职位信息的源码,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧 分析 使用Crawl ...

  5. python爬虫(16)使用scrapy框架爬取顶点小说网

    本文以scrapy 框架来爬取整个顶点小说网的小说 1.scrapy的安装 这个安装教程,网上有很多的例子,这里就不在赘述了 2.关于scrapy scrapy框架 是一个非常好的东西,能够实现异步爬 ...

  6. python3+scrapy+selenium爬取英雄联盟英雄资料

    继前一篇文章用nodejs+puppeteer+chromium爬取了这个英雄资料后,在本篇同样爬这个页面,思路都差不多,只是用不同语言来实现,可作为参考,个人觉得爬虫还是nodejs比较好用,可能是 ...

  7. 爬虫基础(案例:爬取英雄联盟全皮肤)

    爬取思路: 1.首先分析是静态数据还是动态数据,HTML源码中找不到英雄页面的信息,所以是静态数据. 2.chrom调试抓包,找到皮肤信息所在的URL ,这里第一个英雄皮肤所在的URL为https:/ ...

  8. 【Python爬虫】爬取英雄联盟所有皮肤图片实现千图成像~

    前文 本文主要分为两个部分 一部分是爬虫,这边是选择爬取英雄联盟官网英雄资料中的英雄皮肤图片,如下为新英雄seraphine的页面,包含英雄对应的所有皮肤: 另一部分是图片的合成,先将所有英雄皮肤图片 ...

  9. 爬取英雄联盟所有皮肤图片实现千图成像~

    前文 本文主要分为两个部分 一部分是爬虫,这边是选择爬取英雄联盟官网英雄资料中的英雄皮肤图片,如下为新英雄seraphine的页面,包含英雄对应的所有皮肤: 另一部分是图片的合成,先将所有英雄皮肤图片 ...

最新文章

  1. 历史 history
  2. jvm性能调优 - 13JVM的年轻代垃圾回收器ParNew原理
  3. QUESTION-PRINCIPLE-ANSWER(SOLUTION) RELATIONSHIP
  4. ⑧javaWeb之在例子中学习(过滤器Filter)
  5. 微信红包的支撑架构原理是什么?
  6. 【CMS】安装CMS
  7. cap理论具体含义_分布式系统:CAP 理论的前世今生
  8. 02-15 GUCCI 我喜欢的
  9. 使用 React和webpack开发和打包发布
  10. 9个小技巧助你获得职场幸福
  11. Python 链表内取随机数(list取随机数)
  12. linux如何加入windows域
  13. eclipse—安装ADT插件搭建安卓开发环境
  14. 专接本C语言必背程序
  15. 2011年下半年11月份系统架构设计师上午试题答案之二
  16. 2020牛客暑期多校训练营(第七场)J.Pointer Analysis
  17. CE 无法搜索中文字符串变量的解决办法
  18. 浅谈中国程序员的四个层次,你在第几层?
  19. 3d max材质添加透明贴图异常
  20. mysql使用触发器,delete、insert、update触发器

热门文章

  1. JAVA之bootstrap02
  2. SQL中怎么创建外键和删除外键
  3. 卡方检验结果怎么看-医学统计助手★卡方检验,t检验,F检验,秩和检验,方差分析
  4. python中的值传递和引用传递
  5. 计算机网络实验报告西南科技大学,西南科技大学计算机网络-实验一
  6. c语言指针转换成数组,浅议C语言中灵魂数组和指针的互操作(转)
  7. 学校计算机管理工作计划,计算机教室管理工作计划.doc
  8. Beyond One-Model-Fits-All: A Survey of Domain Specialization for Large Language Models
  9. 426 Upgrade Required
  10. 分布式技术原理(八):分布式存储