python3爬虫之使用Scrapy框架爬取英雄联盟高清桌面壁纸
使用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框架爬取英雄联盟高清桌面壁纸相关推荐
- python桌面爬虫_Python3爬虫爬取英雄联盟高清桌面壁纸功能示例【基于Scrapy框架】...
本文实例讲述了Python3爬虫爬取英雄联盟高清桌面壁纸功能.分享给大家供大家参考,具体如下: 使用Scrapy爬虫抓取英雄联盟高清桌面壁纸 源码地址:https://github.com/snowy ...
- Python爬虫实战| Python爬取英雄联盟高清壁纸
先看一下最终爬取的效果,每个英雄的壁纸都被爬取下来了: "黑暗之女 安妮"的12张壁纸: 高清大图: 下面开始正式教学! 版本:Python 3.5 工具:Jupyter note ...
- 还愁没壁纸?Python爬取5K分辨率高清桌面壁纸
2019独角兽企业重金招聘Python工程师标准>>> 前言 相信大家都很需要哪些既好看又能符合自己当时的心情的高清壁纸,很多时候壁纸反应我们当时的心情,一张好的壁纸就一道靓丽的风景 ...
- python爬虫教程:Scrapy框架爬取Boss直聘网Python职位信息的源码
今天小编就为大家分享一篇关于Scrapy框架爬取Boss直聘网Python职位信息的源码,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧 分析 使用Crawl ...
- python爬虫(16)使用scrapy框架爬取顶点小说网
本文以scrapy 框架来爬取整个顶点小说网的小说 1.scrapy的安装 这个安装教程,网上有很多的例子,这里就不在赘述了 2.关于scrapy scrapy框架 是一个非常好的东西,能够实现异步爬 ...
- python3+scrapy+selenium爬取英雄联盟英雄资料
继前一篇文章用nodejs+puppeteer+chromium爬取了这个英雄资料后,在本篇同样爬这个页面,思路都差不多,只是用不同语言来实现,可作为参考,个人觉得爬虫还是nodejs比较好用,可能是 ...
- 爬虫基础(案例:爬取英雄联盟全皮肤)
爬取思路: 1.首先分析是静态数据还是动态数据,HTML源码中找不到英雄页面的信息,所以是静态数据. 2.chrom调试抓包,找到皮肤信息所在的URL ,这里第一个英雄皮肤所在的URL为https:/ ...
- 【Python爬虫】爬取英雄联盟所有皮肤图片实现千图成像~
前文 本文主要分为两个部分 一部分是爬虫,这边是选择爬取英雄联盟官网英雄资料中的英雄皮肤图片,如下为新英雄seraphine的页面,包含英雄对应的所有皮肤: 另一部分是图片的合成,先将所有英雄皮肤图片 ...
- 爬取英雄联盟所有皮肤图片实现千图成像~
前文 本文主要分为两个部分 一部分是爬虫,这边是选择爬取英雄联盟官网英雄资料中的英雄皮肤图片,如下为新英雄seraphine的页面,包含英雄对应的所有皮肤: 另一部分是图片的合成,先将所有英雄皮肤图片 ...
最新文章
- 历史 history
- jvm性能调优 - 13JVM的年轻代垃圾回收器ParNew原理
- QUESTION-PRINCIPLE-ANSWER(SOLUTION) RELATIONSHIP
- ⑧javaWeb之在例子中学习(过滤器Filter)
- 微信红包的支撑架构原理是什么?
- 【CMS】安装CMS
- cap理论具体含义_分布式系统:CAP 理论的前世今生
- 02-15 GUCCI 我喜欢的
- 使用 React和webpack开发和打包发布
- 9个小技巧助你获得职场幸福
- Python 链表内取随机数(list取随机数)
- linux如何加入windows域
- eclipse—安装ADT插件搭建安卓开发环境
- 专接本C语言必背程序
- 2011年下半年11月份系统架构设计师上午试题答案之二
- 2020牛客暑期多校训练营(第七场)J.Pointer Analysis
- CE 无法搜索中文字符串变量的解决办法
- 浅谈中国程序员的四个层次,你在第几层?
- 3d max材质添加透明贴图异常
- mysql使用触发器,delete、insert、update触发器
热门文章
- JAVA之bootstrap02
- SQL中怎么创建外键和删除外键
- 卡方检验结果怎么看-医学统计助手★卡方检验,t检验,F检验,秩和检验,方差分析
- python中的值传递和引用传递
- 计算机网络实验报告西南科技大学,西南科技大学计算机网络-实验一
- c语言指针转换成数组,浅议C语言中灵魂数组和指针的互操作(转)
- 学校计算机管理工作计划,计算机教室管理工作计划.doc
- Beyond One-Model-Fits-All: A Survey of Domain Specialization for Large Language Models
- 426 Upgrade Required
- 分布式技术原理(八):分布式存储