本文实例讲述了Python3爬虫爬取英雄联盟高清桌面壁纸功能。分享给大家供大家参考,具体如下:

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

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

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

首先,创建项目

scrapy startproject loldesk

生成项目的目录结构

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

import scrapy

class LoldeskItem(scrapy.Item):

name = scrapy.Field()

ImgUrl = scrapy.Field()

pass

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

import scrapy

from loldesk.items import LoldeskItem

class 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 re

class 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 filename

def 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_path

return item

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

# 设置图片存储路径

IMAGES_STORE = 'F:/python/loldesk'

#启动pipeline中间件

ITEM_PIPELINES = {

'loldesk.pipelines.MyImagesPipeline': 300,

}

在根目录下运行程序:

scrapy crawl loldesk

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

希望本文所述对大家Python程序设计有所帮助。

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

  1. python3爬虫之使用Scrapy框架爬取英雄联盟高清桌面壁纸

    使用Scrapy爬虫抓取英雄联盟高清桌面壁纸 源码地址:https://github.com/snowyme/loldesk 开始项目前需要安装python3和Scrapy,不会的自行百度,这里就不具 ...

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

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

  3. python3爬虫之多线程爬取英雄联盟所有皮肤图片

    python3爬虫之多线程爬取英雄联盟所有皮肤图片 线程不要太高,容易出错,大约用时1分钟左右. import requests import json import os import thread ...

  4. 【Python爬虫实战】爬取彼岸图库高清图片

    利用Python爬取彼岸图库高清图片 让你每天一张壁纸不重样,今天利用Python爬取 彼岸图库 http://pic.netbian.com/ 分析网页 通过首页可以看到要获取全站图片必须先抓取各个 ...

  5. Python爬虫练习之爬取英雄联盟皮肤

    毕业设计还没有弄完,但又不想弄,就先写个爬虫换换心情吧. 爬取的是英雄联盟英雄的皮肤,不过首页的url地址没有我们想要的数据,需要找到真实的url地址,就是简单的json文本,过程比较简单,步骤都写在 ...

  6. Python爬虫之selenium爬取英雄联盟官网英雄皮肤图片下载到本地和保存到数据库

    从英雄联盟皮肤网站的网页源代码中获取不到英雄的皮肤地址 通过selenium可以轻松获取想要的内容 源码展示 from selenium import webdriver from time impo ...

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

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

  8. Python爬虫之简单爬虫之爬取英雄联盟官网的英雄的皮肤

    Python爬虫之简单爬虫之爬取英雄联盟官网的英雄的皮肤 文章目录 Python爬虫之简单爬虫之爬取英雄联盟官网的英雄的皮肤 背景:LOL这款游戏有着大量的玩家,这个游戏里面人们津津乐道的皮肤,每一款 ...

  9. 牛散村:python怎么爬取英雄联盟皮肤图片?爬虫实战!

    相信很多小伙伴都是喜爱英雄联盟的玩家,英雄联盟的皮肤制作还是比较精美的,有收集癖好的小编打算用爬虫将官网的皮肤爬取下来.接下来就看小编怎么用python爬取英雄联盟皮肤吧!(内附python爬虫源代码 ...

最新文章

  1. GMQ稳定币可降低交易成本,构建智能化支付生态体系
  2. 使用Capture画原理图
  3. JVM中的STW和CMS
  4. 基于阿里云镜像源使用kubeadm安装k8s单master节点集群(v1.17.3)
  5. delphi 企业微信消息机器人_企业微信—群聊机器人
  6. Pure Pursuit纯跟踪算法Python/Matlab算法实现
  7. 转化百分比_localPosition与anchoredPosition的转化关系
  8. 区块链监管难题争论不休,这里具体谈谈辅助监管的四种技术
  9. iPads和iPhones的Media Queries(转载)
  10. 电视家鸿蒙系统,ZNDS智能电视强烈推荐:机顶盒上好用的四款软件!
  11. 高德地图地址解析经纬度以及经纬度解析地址
  12. 研究知识追踪/学生模型的一些学校和人物
  13. Java对象空间分配流程
  14. ▷Scratch课堂丨【编程趣味卡3】制作音乐
  15. 魔图的制作过程(转)
  16. 新手摸爬滚打:vue+springboot前后端分离项目演示(三)——axios实现前后端交互
  17. 关于WirelessKey的一些说明
  18. 解决chrome浏览器图标缓存问题
  19. ncvv -V 不是内部或外部命令,也不是可运行的程序
  20. Laravel 通过apache部署

热门文章

  1. 删除oracle卸载后window服务中残留的oracle服务
  2. 网站登录中的验证码作用
  3. SpringMVC 验证码
  4. ChinaJoy现场直击:惠普引领玩家“玩出内力”
  5. CRM开发要点(五)
  6. Android面试——Handler 机制
  7. Tinymce 4富文本设置行高
  8. 产品的天机和成败:我的实践史与俞军的方法论
  9. 厉害了!打工人用Python分析西安市职位信息
  10. 严寒下逆行核酸检测的志愿者身影最美——安徽驻京团工委抗疫情