Python实现壁纸批量下载
Python实现壁纸批量下载
最近想要一些新的壁纸,但是从网站上面找一张一张下载太慢了,所以写了个爬虫批量下载壁纸。
先看看实现的效果
需要的包:
requests、bs4 、os、re
源码:
# @Time : 2021/09/02 15:50
# @Author : LuYonghaoimport requests
from bs4 import BeautifulSoup
import os
import reclass wallpaper:def __init__(self):self.typelist = []self.urllist = []self.root = ''def gethtmlurl(self, url):try:r = requests.get(url)r.raise_for_status()r.encoding = r.apparent_encodingreturn r.textexcept:return ""def getpic(self, html):soup = BeautifulSoup(html, 'html.parser')all_img = soup.find("div", class_="contlistw mtw").find_all("img")for img in all_img:src = img['lazysrc']img_url = src.split(".278")[0]alt = img_url.split("/")[-1]print(img_url)print(alt)path = self.root + alttry: # 创建或判断路径图片是否存在并下载if not os.path.exists(self.root):os.mkdir(self.root)if not os.path.exists(path):r = requests.get(img_url)print(path)with open(path, 'wb') as f:f.write(r.content)f.close()print("[+]文件保存成功")else:print("[-]文件已存在")except Exception as e:print("[-]爬取失败{}".format(e))def gettype(self, html):soup = BeautifulSoup(html, 'html.parser')all_type = soup.find("div", class_="cl r").find_all("a")for data in all_type:url = data["href"]type = re.findall(r'"catnametit">(.*?)<', str(data))[0]number = re.findall(r'"cl">\((.*?)\)', str(data))[0]self.typelist.append(type + number)self.urllist.append(url)for i, element in enumerate(self.typelist):print(i, element)try:a = input("请输入分类编号:")self.root = input("请输入文件存储路径:")self.downpic(a)except:print("[+]退出程序")def getpage(self, html):soup = BeautifulSoup(html, 'html.parser')all_pages = soup.find("div", id="pageNum")for page in all_pages:numlist = re.findall(r'html">(.*?)<', str(page))return numlist[-2]def downpic(self, typeindex):typeurl = self.urllist[int(typeindex)]html = self.gethtmlurl(typeurl)numpages = self.getpage(html)for i in range(1, int(numpages)):url = "{}/index_{}.html".format(typeurl, i)pichtml = (self.gethtmlurl(url))self.getpic(pichtml)def main():url = "https://desk.3gbizhi.com"html = wallpaper().gethtmlurl(url)wallpaper().gettype(html)if __name__ == '__main__':main()
运行方式:
Python实现壁纸批量下载相关推荐
- python代码壁纸-python实现壁纸批量下载代码实例
前言 好久没有写文章了,因为最近都在适应新的岗位,以及利用闲暇时间学习python.这篇文章是最近的一个python学习阶段性总结,开发了一个爬虫批量下载某壁纸网站的高清壁纸. 注意:本文所属项目仅用 ...
- Python爬虫 - wallhaven任意页面下的壁纸批量下载
基于Python 任意页面下的壁纸批量下载 github Maxpagenum 爬取页数 fpath 保存路径 url 基础地址 import requests import re import ti ...
- 使用python实现高清壁纸批量下载
一.高清壁纸批量下载 1.概述 此代码是使用python多线程批量下载高清壁纸的一个小脚本,代码略为简陋. 此代码仅供学习与交流,请不要用于违法用途. import requests from lxm ...
- python爬虫实现批量下载百度图片
今天和小伙伴们合作一个小项目,需要用到景点图片作为数据源,在百度上搜索了一些图片,感觉一个一个手动保存太过麻烦,于是想到用爬虫来下载图片. 本次代码用到了下列一些python模块,需要预先安装Beau ...
- 利用Python编写脚本批量下载公众号中的音频
欢迎大家光临我的博客,大家一起交流学习哦 陈京九的博客 首先声明我只是一个小菜鸡,把自己琢磨一些功能的过程发到了这里当做记录,希望大神们轻喷,能给我一些指导就更好啦~ 上一篇博客教大家下载了公众号中的 ...
- python上市公司_Python批量下载上交所上市公司报告
上交所的上市公司报告搜索页面http://www.sse.com.cn/disclosure/listedinfo/announcement/ 通过查看页面调用的接口可以发现: 获取上交所全部股票代码 ...
- python爬虫+ffmpeg批量下载ts文件,解密合并成mp4
标题 python爬虫+ffmpeg批量下载ts文件,解密合并成mp4 文章目录 标题 前言 一.分析目标 二.寻找url规律 三.写代码 总结 前言 (第一次写博客,写的不好请见谅哈~~) 目标是大 ...
- python代码壁纸-70行python代码实现壁纸批量下载
前言 好久没有写文章了,因为最近都在适应新的岗位,以及利用闲暇时间学习python.这篇文章是最近的一个python学习阶段性总结,开发了一个爬虫批量下载某壁纸网站的高清壁纸. 注意:本文所属项目仅用 ...
- wallpaper代码_70 行 python 代码实现壁纸批量下载!
好久没有写文章了,因为最近都在适应新的岗位,以及利用闲暇时间学习python.这篇文章是最近的一个python学习阶段性总结,开发了一个爬虫批量下载某壁纸网站的高清壁纸. 注意:本文所属项目仅用于py ...
最新文章
- 阿里云有史以来最大的一次优惠,爆款限时抢,至少省10000+
- 请讲一下浏览器从接收到一个URL,到最后展示出页面,经历了哪些过程
- matlab逆变换法产生随机数_matlab中产生随机数的程序
- css盒模型中子元素垂直方向上总高度与父元素height的关系
- 计算机软件 教案,计算机软件系统教案
- Java:如何在不到5分钟的时间内通过Hazelcast提高生产力
- CSS 与 HTML5 响应式图片
- OFFICE EXCEL表格中让A1 中的数字为变量时,如何引用
- 2016 版 Laravel 系列入门教程(三)【最适合中国人的 Laravel 教程】
- 面向对象封装的web服务器
- sql server 运维时CPU,内存,操作系统等信息查询(用sql语句)
- pycharm如何上传代码到github
- IP地址是如何分配的
- DLL注入——使用注册表
- c语言 音符符号大全,音符符号大全
- 工作缺点和不足及措施_个人工作缺点和不足
- 武书连2022中国大学综合实力排行榜发布!
- linux网卡流量查询sar,Linux 查看实时网卡流量的方法 sar nload iftop
- 我的【藏羚头条】开发运营经验
- 企业微信可以自动回复吗?