爬取4k图片到本地实战

发布时间 2023-10-22 22:25:20作者: 敲代码的PinkPig
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))