电脑壁纸?手机壁纸?还去各个壁纸网站上去搜索吗?现在不需要了!只需要选择想要的壁纸类型,然后就静静等待一会儿,大量壁纸就保存在你的电脑上,一个爬虫解决你的想要壁纸的烦恼。

该爬虫比较简单,很容易上手,通过接口的方式去获取图片链接地址,其中有正则的运用,不会正则的小伙伴可以去学习一下正则,因为这是爬虫领域很重要的东西,在数据清洗中占领着重要位置,好了,不多说,直接展示代码

import requests,re,osclass Downloadpucture(object):def __init__(self):#请求头self.headers={'Accept': 'text / html, application / xhtml + xml, application /'' xml;q = 0.9, image / webp, image / apng, * / *;q = 0.8','Accept - Encoding': 'gzip, deflate','Accept - Language': 'zh - CN, zh;q = 0.9','Cache - Control': 'max - age = 0','Host': 'www.netbian.com','Upgrade - Insecure - Requests': '1','User - Agent': 'Mozilla / 5.0(WindowsNT10.0;WOW64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / ''70.0.3538.25Safari / 537.36Core / 1.70.3870.400QQBrowser / 10.8.4405.400'}#选择图片类型def choosevarise(self):list=["rili","dongman","fengjing","meinv","youxi","yingshi","dongtai","weimei","sheji","keai","qiche","huahui","dongwu","jieri","renwu","meishi","shuiguo","jianzhu","tiyu","junshi","feizhuliu","qita","wangzherongyao","huyan","lol"]LIST=["0.日历","1.动漫","2.风景","3.美女","4.游戏","5.影视","6.动态","7.唯美","8.设计","9.可爱","10.汽车","11.花卉","12.动物","13.节日","14.人物","15.美食","16.水果","17.建筑","18.体育","19.军事","20.非主流","21.其他","22.王者荣耀","23.护眼","24.LOL"]print(LIST[0:12])print(LIST[13:25])Downloadpucture.choosepath(self) #调用路径填写函数Downloadpucture.choosenum(self) #调用图片类型选择函数Downloadpucture.judge(self, number, LIST, list) #调用路径填写函数#保存路径,主要对路径做一个判断,判断路径是否填写正确,如果该路径下存在文件夹则跳过,不存在则创建文件夹def choosepath(self):global PATHwhile True: #对文件进行判定,文件夹后面是否带“/”,不带则主动添加“/”,因为这儿是为了下面图片下载函数能正确下载到填写的文件夹下try:try:PATH=input("请输入保存路径,具体到某个文件夹:")gz = r"/$"rep = re.findall(gz, PATH)[0]passif rep == "/":passelse:passexcept:PATH += "/"folder=os.path.exists(PATH)if not folder:os.mkdir(PATH) #创建文件夹breakelse:breakexcept:print("路径错误,请仔细检查路径后重试!!")print("图片保存路径:%s" % PATH)#判断输入的序号是否正确def choosenum(self):global numberwhile True:try:number = int(input("请输入要下载的类型图序号:"))if isinstance(number,int):if  0<=number<=24:breakelse:print("请输入正确序号!!!")else:print("请输入正确序号!!!")except:print("请输入正确序号!!!")#对页面URL进行处理,主要是爬取的页面URL不一致,进行判断,获取URLdef judge(self,number,LIST,list):global Urlkd = list[number]print("你已选择:%s" % LIST[number])for i in range(1, Downloadpucture.picturepages(self, kd, number) + 1):if 0 <= number < 22:Url = "http://www.netbian.com/%s/index_%d.htm" % (kd, i)if i == 1:Url = "http://www.netbian.com/%s/" % kdelse:passelif 22 <= number <= 24:Url = "http://www.netbian.com/s/%s/index_%d.htm" % (kd, i)if i == 1:Url = "http://www.netbian.com/s/%s/" % kdelse:passDownloadpucture.picturenum(self)#获取图片;类型下所有图片的二级链接def indexdata(self):rep = requests.get(url=Url, headers=self.headers)return rep.text#正则提取出二级链接下响应页面的三级地址def picturenum(self):data=Downloadpucture.indexdata(self)zz=r'href="/desk/.*?.htm"'global URlfor i in data.split():try:ret=re.search(zz,i).group()[12:17]URl = 'http://www.netbian.com/desk/%s-1920x1080.htm' % retDownloadpucture.download(self,PATH)except:pass#获取图片所有页数,找到该图片类型下所有的页数def picturepages(self, kd,number):if 0<=number<22:req = requests.get(url="http://www.netbian.com/%s/" % kd, headers=self.headers).textgz = r'.htm">.*?</a><a href="/%s/index_2.htm'% kdNUM=re.findall(gz,req)[0].split(">")[-2]PAGE=re.match(r'\d{0,4}',NUM).group()return int(PAGE)else:req = requests.get(url="http://www.netbian.com/s/%s/" % kd, headers=self.headers).textgz = r'.htm">.*?</a><a href="/s/%s/index_2.htm'% kdNUM=re.findall(gz,req)[0].split(">")[-2]PAGE=re.match(r'\d{0,4}',NUM).group()return int(PAGE)# 获取图片正式地址def htmldata(self,URl):re = requests.get(url=URl, headers=self.headers)return re.text# 响应数据处理,获取图片相应的urldef picturelink(self):data = Downloadpucture.htmldata(self, URl).split()list = []for i in data:if i[0:4] == "src=":if i[-4:-1] == "jpg":url = i[5:-1]list.append(url)else:passelse:passreturn list[1]# 下载图片def download(self,PATH):D = requests.get(Downloadpucture.picturelink(self), stream=True)path = PATH + Downloadpucture.picturelink(self)[-10:-4] + ".jpg"with open(path, "wb") as f:f.write(D.content)print(Downloadpucture.picturelink(self)[-10:-4] + ".jpg" + "下载完成!")if __name__=="__main__":a=Downloadpucture()a.choosevarise()

成果真的很nice,再也不用对没有好看的壁纸而烦恼啦!

Python爬虫爬取高清壁纸相关推荐

  1. python爬虫爬取高清图片——爬虫入门

    自动抓取某图片网站高清壁纸并下载保存 使用requests请求网页,bs4解析数据 话不多说直接看代码,刚学不久欢迎指点 #-*- codeing = utf-8 -*- #@Time : 2022/ ...

  2. python爬虫爬取高清原图

    先来一张测试结果截图: 这里使用的是requests和xpath 先安装所需要的requests和lxml包,这个就不多说了 然后开始书写代码,关键的内容在代码中都有注释,这里只是简单介绍流程 由于要 ...

  3. python爬虫--王者荣耀高清壁纸下载(多线程)

    下面的代码是采用多线程的生产者消费者模式,下载速度比之前文章的普通下载快一点. 普通下载的链接:python爬虫–王者荣耀高清壁纸下载 代码在下载方面是没有问题的,可以直接运行,就是在收集打不开链接的 ...

  4. Python爬虫 | 爬取高质量小姐姐照片

    Python爬虫 | 爬取高质量小姐姐照片 1.数据来源分析 2.获取author_id_list和img_id 3.制作detial 4.制作detial_list 5.数据保存 6.批量获取 7. ...

  5. python爬虫爬取wallpapers最新壁纸

    python爬虫爬取wallpapers最新壁纸 详细教程请访问:https://www.bilibili.com/video/av58978561/ 详细教程请访问:https://www.bili ...

  6. python代码壁纸-Python爬取高清壁纸

    需要准备的东西: 用到的环境:python3.7 用到的ide:pycharm 用到的库 time.BeautifulSoup.requests 本次的目标: 下载几百张海贼王的高清壁纸 练习爬虫 分 ...

  7. python手机壁纸超清_python爬虫 爬取超清壁纸代码实例

    简介 壁纸的选择其实很大程度上能看出电脑主人的内心世界,有的人喜欢风景,有的人喜欢星空,有的人喜欢美女,有的人喜欢动物.然而,终究有一天你已经产生审美疲劳了,但你下定决定要换壁纸的时候,又发现网上的壁 ...

  8. 爬虫第1课,手把手教你,批量爬取高清壁纸

    一.环境准备 '''1.安装虚拟环境 python -m venv venv2.选择解释器 File/Settings/Project:getPicture(项目名)3.进入虚拟环境 cd .\ven ...

  9. Python spider爬取高清电影

          最近无聊想刷几部电影,可是去下载的时候发现网页浏览太麻烦了,要一个一个点开看.其实大多数时候我们看一眼名字和主演就可知道要不要看了.索性写了一个爬虫,爬了200多部电影和下载地址,话不多说 ...

最新文章

  1. 安卓 linux init.rc,[原创]Android init.rc文件解析过程详解(二)
  2. 重游java(猜拳项目)
  3. 如何查阅相关工作所用到的文献资料
  4. linux shell 用sed命令在文本的行尾或行首添加字符
  5. hp服务器硬盘ultra320,HP服务器上安装和管理HP 磁盘柜MSA500G.pdf
  6. mysql rr和rc_MySQL Transaction--RC和RR区别
  7. django 1.8 官方文档翻译: 2-3-2 关联对象参考
  8. java properties $_Java读取Properties文件的六种方法
  9. Netty实战《原理》
  10. 什么软件可以编辑PDF文件
  11. PL-SLAM:通过点和线段组合的立体SLAM系统
  12. God.org单域环境攻略(三)
  13. 高等数学:第五章 定积分(1)概念与性质 中值定理 微积分基本公式
  14. 计算机进制小数位之间的转换,计算机进制之间相互转换
  15. c语言中十六进制乘以16啥意思,C语言16进制中16怎么表示?
  16. epic怎么添加本地游戏_反攻?steam推出游戏共享模式,一人购买全家都能玩
  17. 华为机试—介绍、剖析、建议
  18. 本笔记为阿里云天池龙珠计划SQL训练营的学习内容,链接为:https://tianchi.aliyun.com/specials/promotion/aicampsql” Task06学习笔记
  19. out输出口_Line Out是扬声器输出端口,用于外接音箱或功放等。_学小易找答案
  20. K线形态识别_黄昏之星和黄昏十字星

热门文章

  1. loca高德地图如何将后端传来的点位数据转换成geojson格式
  2. vue mounted方法执行多次问题的解决方案
  3. 数据库-超码、候选码、主码
  4. MATLAB曲线拟合工具箱
  5. 单元测试之Mockito
  6. 任务四 机器学习库Scikit-learn
  7. 不理解电路、信号处理中的“虚部”怎么办?看完秒懂
  8. charles证书安装断点调试 弱网测试
  9. AIBigData训练营笔记四:Python爬取A股股票名称和代码
  10. 无界鼠标(Mouse without Borders)不仅是多机器键鼠共享