使用Python的Requests库爬取wallhaven的精美壁纸

Python Requests爬取wallhaven的精美壁纸

  • 前置条件
    • Python3.6(其他3以上的版本都行)
    • 安装Requests库
  • 内容不多直接看代码吧

前置条件

Python3.6(其他3以上的版本都行)

安装Requests库

	最近在https://wallhaven.cc/上看到了许多喜欢的壁纸,但是每个都点开下载的话比较麻烦,所以写了一个脚本批量下载到
	本地,然后想换哪个就可以换哪个了

内容不多直接看代码吧

# _*_ coding: utf-8 _*_
# @Time   :  2021/4/22 13:11
# @Author :  贝加尔湖一条鱼
import requests
from bs4 import BeautifulSoup

class Down_pic(object):
    def download_file(self,url, path):
    	"""
    	把获取的图片链接通过另存保存到本地图片
		@url:图片的链接
		@path:图片的本地存放路径
		"""
        r = requests.get(url)
        print ('开始下载')
        with open(path, "wb") as f:
            f.write(r.content)

    def get_response(self,url):
    	"""
    	解析当前页面的地址,提取图片的链接
    	@url:页面的链接
		"""
        response = requests.get(url)    #获取页面的代码
        soup = BeautifulSoup(response.text,'html.parser')
        links = soup.find_all('img',attrs={"class":"lazyload"})
        # 因为从页面上获取到的只是图片链接的一部分,所以要经过拼接之后才能用
        for link in links:
            link = link['data-src']
            link = link.replace("small",'full')
            link = link.replace('th','w')
            pic_link = link[0:31]+"wallhaven-"+link[31:]  #拼接后的图片链接
            filename = "D:/file_test/WUGUI/pic/"+pic_link[-10:]  #拼接后的图片存放路径
            self.download_file(pic_link,filename)  #调用下载函数
            print(pic_link)

if __name__ == '__main__':
	# 使用列表的方式存放页面的路径,网站里面有很多的分类,本次脚本选用的是toplist页面的。页面链接很规律,从一开始往后加就行了
	start_page = 1
    end_page = 10
    urls = ["https://wallhaven.cc/toplist?page={}".format(str(i)) for i in range(start_page,end_page)]
    for url in urls:
        Down_pic().get_response(url)

写的比较粗,有兴趣的小伙伴可以继续优化一下

你可能感兴趣的:(python爬虫入门,壁纸,Requests,python,爬虫)