wallhaven壁纸网站改版后爬虫
新手上路,老司机绕路
最近学习python,尝试写一点小爬虫
这是改版后的wallhaven壁纸网站,爬取热门榜单。首先对网站进行分析
按F12启动开发者工具,对网页进行分析。
现在页面上的图片都是缩略图没有爬取的意义,需要对源图片进行爬取,定位到图片的位置上,图片属性中有一个href属性,这个属性是超链接,所以我们根据herf属性进一步爬取,打开其href属性中的网页。
就得到了这张图片的源图片,而不是缩略图,然后使用爬虫对图片进行保存就可以了。
下面是对wallhaven网站的Toplist榜单进行爬取的小例子。
注意文件路径和获取范围根据个人调整
代码如下:
import requests
from lxml import etree
headers={"User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0"}filepath="D:/Picture/wallhaven/" #文件路径for i in range(1,11): #爬取页数kv={"page":i}url="https://wallhaven.cc/toplist"try:r=requests.get(url,headers=headers,params=kv,timeout=200)#开始解析html =etree.HTML(r.text)srcs =html.xpath(".//li//a[@class='preview']/@href") #获取到跳转网页for src in srcs :r=requests.get(src,headers=headers,timeout=200)html =etree.HTML(r.text)img_src =html.xpath(".//img[@id='wallpaper']/@src")for src in img_src :filename_1= src.split('/')[-1] #获取文件名response=requests.get(src,headers=headers) with open(filepath+filename_1,'wb') as file:file.write(response.content)print(filename_1)print("Succeed")except:continueprint("跳过") print("Triumph")