python获取Wallhaven图片

  1 # -*- coding:utf-8 -*-
  2 import requests,re,os
  3 from bs4 import BeautifulSoup
  4 
  5 print(
  6     '''
  7     --------------------------------------
  8     
  9               获取Wallhaven图片
 10             
 11                             by:冷溪凌寒
 12                                  V 1.0
 13     --------------------------------------
 14     '''
 15 )
 16 
 17 url_list=[]#图片地址列表
 18 
 19 def toplist_source(p,l):#获取热榜页面的所有图片地址
 20     print("获取图片地址中,请稍等......")
 21     for i in range(int(p)):#遍历图片搜索列表所有页面的图片代码
 22         url = "https://wallhaven.cc/toplist?page="+str(i+1)
 23         #进入图片搜索列表的某一页
 24         p = requests.get(url).text
 25         #获取网页源代码文本
 26         temp=BeautifulSoup(p,'html.parser')
 27         #解析网页源代码的文本,html.parser为解析器
 28         result=temp.select('.base #main #thumbs section ul li figure .preview')
 29         #html选择器选择到缩略图
 30         for i in result:
 31             l.append(i['href'])
 32         #获取缩略图的href添加到列表
 33     print("一共获取到了%s张图片。"%len(l))
 34 
 35 def search_source(s,p,l):#获取搜索页面的所有图片地址
 36     for i in range(int(p)):#遍历图片搜索列表所有页面的图片代码
 37         url = "https://wallhaven.cc/search?q="+s+"&page="+str(i+1)
 38         #进入图片搜索列表的某一页
 39         p = requests.get(url).text
 40         #获取网页源代码文本
 41         temp=BeautifulSoup(p,'html.parser')
 42         #解析网页源代码的文本,html.parser为解析器
 43         result=temp.select('.base #main #thumbs section ul li figure .preview')
 44         #html选择器选择到缩略图
 45         for i in result:
 46             l.append(i['href'])
 47         #获取缩略图的href添加到列表
 48     print("一共获取到了%s张图片。"%len(l))
 49 
 50 def mkdir(s):#创建文件夹
 51     isExists=os.path.exists(s)#判断是否创建了文件夹
 52     if not isExists:
 53         os.makedirs(s)#创建文件夹
 54         print("创建文件夹'%s',将图片放入'%s'文件夹内。"%(s,s))
 55     else:
 56         print("已经有'%s'文件夹,将图片放入'%s'文件夹内。"%(s,s))
 57 
 58 def download(s,l):#遍历图片地址列表下载文件
 59     num = 1
 60     print('------------------------------------------------------------------------------')
 61     print('序号\t\t\t图片链接')
 62     for i in range(0,len(l)):
 63         url=l[i]
 64         #进入原图页面
 65         html = requests.get(url).text
 66         #得到网页源码
 67         temp=BeautifulSoup(html,'html.parser')
 68         #解析网页源代码的文本,html.parser为解析器
 69         result=temp.select('body main section .scrollbox img')
 70         #html选择器选择到原图
 71         for i in result:
 72             reg=(i['src'])
 73         #获取原图的地址
 74         a = requests.get(reg)
 75         f = open(s+"/%s.png"%num, 'wb')#以二进制格式写入文件夹中
 76         f.write(a.content)
 77         f.close()
 78         print("%s.\t\t\t%s"%(num,reg))
 79         num = num+1
 80     print('------------------------------------------------------------------------------')
 81     print("下载结束!")
 82 
 83 
 84 switch=input("根据名称下载图片请输入1\n下载热榜图片请输入2\n")
 85 if switch == '1':
 86     search=input("请输入想要搜索的图片(英文):\n")#输入搜索的关键字
 87     page=input("请输入想要搜索图片的页数(每页有24张图):\n")#输入Wallhaven网页的页数
 88     search_source(search,page,url_list)
 89     mkdir(search)
 90     download(search,url_list)
 91 
 92 elif switch == '2':
 93     page=input("请输入想要搜索图片的页数(每页有24张图):\n")#输入Wallhaven网页的页数
 94     toplist_source(page,url_list)
 95     search='热榜'
 96     mkdir(search)
 97     download(search,url_list)
 98 
 99 else:
100     print("输入错误!")

 

posted @ 2021-03-26 16:01  冷溪凌寒  阅读(304)  评论(0)    收藏  举报