使用python实现高清壁纸批量下载
一.高清壁纸批量下载
1.概述
此代码是使用python多线程批量下载高清壁纸的一个小脚本,代码略为简陋.
此代码仅供学习与交流,请不要用于违法用途.
import requests
from lxml import etree
import re
import time
from concurrent.futures import ThreadPoolExecutor, wait, ALL_COMPLETED# 爬取高清壁纸排行榜# 获取图片下载地址
def getPicUrl():url = "https://wallhaven.cc/toplist?page=9999"req = requests.get(url);html = etree.HTML(req.text)# 通过获取报错页面获取最大页数img_list = html.xpath('//*[@id="thumbs"]/section[1]/header/h2/text()[2]')[0]comp = re.compile("-?[1-9]\d*")list_int = comp.findall(img_list)[0]print("一共有"+list_int+"页")for i in range(1,int(list_int)): #可修改int(list_int)指定需要下载的页数url = "https://wallhaven.cc/toplist?page={}".format(i)req = requests.get(url);html = etree.HTML(req.text)for j in range(1,30): # 每一页的图片数try:'''1.首先获取低画质图片下载链接: th.wallhaven.cc/small/kx/kx98xd.jpg2.找到高画质图片下载链接: w.wallhaven.cc/full/kx/wallhaven-kx98xd.jpg3.找相同之处拼接url4.将url添加到列表'''urlXpath='//*[@id="thumbs"]/section/ul/li[{}]/figure/img/@data-src'.format(j)img_list = html.xpath(urlXpath)[0]newUrl=str(img_list).split("/")newImgUrl="https://w.wallhaven.cc/full/"+ newUrl[4] + "/wallhaven-" + newUrl[-1]picList.append(newImgUrl) #将图片下载地址添加到列表except(IndexError): #数组越界异常处理print("本页结束")break# 下载图片
def picDownload(a):try:imgname = a.split("/")[-1] #设置图片名img = requests.get(a,headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36'},timeout=5)with open ("E:/img/"+imgname,mode='wb') as f:f.write(img.content)time.sleep(0.1)except:print("下载失败")passif __name__ == '__main__':start_time = time.time()picList = []getPicUrl()#单线程# for i in range(0,len(picList)):# picDownload(picList[i])#多线程executor = ThreadPoolExecutor(max_workers=10) # 线程个数# submit()的参数:第一个为函数, 之后为该函数的传入参数,允许有多个future_tasks = [executor.submit(picDownload, i) for i in picList]wait(future_tasks, return_when=ALL_COMPLETED)# 等待所有的线程完成,才进入后续的执行end_time = time.time()print("完成时间: %s S" % (end_time - start_time))
爬取1页的效果,想下载多少可以自己去改
使用python实现高清壁纸批量下载相关推荐
- 高清壁纸免费下载网站
高清壁纸免费下载网站 图站网:https://www.piczhan.com/
- python手机壁纸超清_Python爬虫-王者荣耀高清壁纸下载
绪论 网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.python是一种跨平台的计算机程序设计语言.是一种 ...
- 微软官网真的是一个神奇的地方,高清壁纸,直接下载
目标网址:https://wallpapers.microsoft.design/ 微软官网真的是一个神奇的地方,今天浏览发现里面竟然还藏着一个超清高质量壁纸板块,实在是太喜欢里面的壁纸风格,虽然不是 ...
- Python批量爬取王者荣耀英雄高清壁纸
Python批量爬取王者荣耀英雄高清壁纸 文章目录 Python批量爬取王者荣耀英雄高清壁纸 前言 爬虫步骤 python代码实现 总结 前言 很多喜欢玩王者的朋友很希望把王者荣耀的英雄图片拿来做壁纸 ...
- python爬虫--王者荣耀高清壁纸下载(多线程)
下面的代码是采用多线程的生产者消费者模式,下载速度比之前文章的普通下载快一点. 普通下载的链接:python爬虫–王者荣耀高清壁纸下载 代码在下载方面是没有问题的,可以直接运行,就是在收集打不开链接的 ...
- python网络爬虫快速下载4K高清壁纸
python网络爬虫快速下载4K高清壁纸 此处给出下载壁纸的链接地址彼岸图网,进入网站之后,我们看到可以下载风景,游戏,动漫,美女等类型的4K图片,装逼一下,re库有贪婪匹配,那我们就写一个通用代码来 ...
- 学习笔记(47):150讲轻松搞定Python网络爬虫-高速下载王者荣耀高清壁纸(1)
立即学习:https://edu.csdn.net/course/play/24756/284634?utm_source=blogtoedu 解码: from urllib import parse ...
- python代码壁纸-python实现壁纸批量下载代码实例
前言 好久没有写文章了,因为最近都在适应新的岗位,以及利用闲暇时间学习python.这篇文章是最近的一个python学习阶段性总结,开发了一个爬虫批量下载某壁纸网站的高清壁纸. 注意:本文所属项目仅用 ...
- python代码壁纸-70行python代码实现壁纸批量下载
前言 好久没有写文章了,因为最近都在适应新的岗位,以及利用闲暇时间学习python.这篇文章是最近的一个python学习阶段性总结,开发了一个爬虫批量下载某壁纸网站的高清壁纸. 注意:本文所属项目仅用 ...
最新文章
- 用CSS制作圆角框的方法一,二
- 2021高考成绩查询是几点,2021高考查分是从几点到几点
- mysql5.6.37 主从同步_MySQL5.6 Replication主从复制(读写分离) 配置完整版
- 如何让你的百万级SQL运行得更快 else
- java nosql_Java EE的NoSQL的未来
- oracle判断数据出现交叉,Oracle!你必须要知道的Knowledge points(一)
- hive 十六进制转十进制_hive 常用运算
- 微信小程序|area组件使用的地址数据文件
- C++中的内存分配new()
- 2016.8.23 项目总结
- php为什么发送不到sql,PHP-为什么我的Ajax无法执行我的SQL查询?
- boost电路输出电流公式_boost升压电路参数计算
- libtorch-gpu推理时占用CPU 100%问题解决
- matlab求解极限问题(limit函数的用法)
- 2013.12.26 M-Learning
- 信息系统监理师题库_软考信息系统监理师题库
- Bath Body 純白花漾系列
- 有哪些业务会用到物理服务器?
- LCD1602的使用详解
- IDEA配置xml文件头报错:URI is not registered (Settings | Languages Frameworks | Schemas and DTDs) 亲测有效!!!
热门文章
- IM系统:消息推送及离线存储
- 手机长途话费应再降!
- 关于java.lang.NoClassDefFoundError: org/springframework/core/metrics/ApplicationStartup问题的解决方法
- Android Notification 的声音和震动
- linux同步机制-complete
- Chrome 浏览器滚动截图
- 旅游可视化系统flask+pyecharts
- 浅谈文件包含之包含pearcmd.php漏洞
- C语言:输入一个浮点数,保留两位小数,对第三位小数四舍五入
- oracle 10.2.0.1 install for centos 5.9(ins_rdbms.mk问题)