爬取4k图片到本地实战
from lxml import etree import os import requests if __name__ == "__main__": #爬取4k壁纸的网站url url = "http://pic.netbian.com/4kfengjing/" hearder = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 Edg/118.0.2088.46' } #向目标网站发起请求 respond = requests.get(url=url,headers=hearder).content #将html文档源码加载到etree对象中 tree = etree.HTML(respond) #因为后面要获取图片的名字作为文件名,就先获取到li标签 li_list = tree.xpath('//div[@class="slist"]/ul/li') print(li_list) #如果没有4kbackground这个文件夹,就自动创建这个文件夹 if not os.path.exists('./4kbackground'): os.mkdir('./4kbackground') #循环获取到的每一个li for i in li_list: #获取图片路径,并且补全路径 src = "http://pic.netbian.com"+i.xpath('./a/img/@src')[0] #将图片的alt属性的值作为图片的名字使用 name = i.xpath('./a/img/@alt')[0] #请求图片响应,content二进制 imgrespond = requests.get(url=src,headers=hearder).content #补全完整的 每一个图片的文件名 path = "./4kbackground/"+name+'.jpg' with open(path,'wb') as f: #写入图片到指定文件下 f.write(imgrespond) print("{}图片下载成功".format(name))