手把手带你自定义分辨率爬取高清大图!!!

更多博主开源爬虫教程目录索引

前言

本次博主以爬取电脑壁纸为例,大家仔细看过这篇博文后,都能够照着套出来,爬取自己想爬取的壁纸。

以下分辨率都能爬取,博主爬取的是1920×1080,绝对的高清大图,看下去,你绝对会有所收获😊
在这里插入图片描述

在这里插入图片描述

一、网页分析

进入ZOL壁纸网站

在这里插入图片描述
点击电脑壁纸
在这里插入图片描述

随便点一个进去
在这里插入图片描述

OK,看到这里心里就有个大概流程了

再看网页的数据是否是动态加载的,答案是否

在这里插入图片描述
注意了,以下是个要点
在这里插入图片描述
赋值打印的html到html文件中,发现
在这里插入图片描述
这是一个网页编码问题,确实是一个常见问题
查看网页编码

  1. 方式一
    在这里插入图片描述
    可见网页编码为GBK
    在这里插入图片描述
  2. 方式二
    在这里插入图片描述

虽然两种方式得到的编码不一样,但都能解决问题

所以我们爬取的时候要记得设置编码


二、完整代码及代码分析

import requests
from bs4 import BeautifulSoup
import os


#请求头
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36 Edg/84.0.522.52"
}


#爬取下载
def download(response):
    data = BeautifulSoup(response.text, "lxml")
    #参考图1,每一个li都是一个系列的图片
    ul_list = data.find_all(class_="photo-list-padding")
	#遍历
    for ul in ul_list:
        # 基础路径
        path = "./图库"
        # 解析
        li = BeautifulSoup(str(ul), "lxml")

        # 详情页网址
        page_url = "http://desk.zol.com.cn" + li.find(class_="pic")["href"]

        # 图片系列名称
        name = li.find("em").text
        # 拼接保存路径(根据图片系列不同,分类保存)
        path = path + "/" + name

        # 如果不存在就创建该文件夹
        if not os.path.exists(path):
            os.makedirs(path)

        # 详情页请求
        page_response = requests.get(url=page_url, headers=headers)
        # 设置页面编码
        page_response.encoding = "GB2312"
        page_data = BeautifulSoup(page_response.text, "lxml")
		
		#参考图2
        li_list = page_data.find(class_="photo-list-box").find_all("li")
        #图片名称,每张图片都没有确切的名称,所以我是用1234来命名
        i = 0
        for page_li in li_list:
            i += 1
            image = BeautifulSoup(str(page_li), "lxml")
            #参考图3
            #从第5张图片开始,参数名称有所不同,所以需要判断
            if i > 4:
                img_url = image.find("img")["srcs"]
            else:
                img_url = image.find("img")["src"]

            # 替换掉144x90的分辨率,设置为1920x1080分辨率
            #参考图4,也可以替换成你自己想要的分辨率,也可以访问下载
            image_url = img_url.replace("144x90", "1920x1080")

            print(image_url)
            # 发起图片请求,content返回的是bytes,二级制型的数据。
            res = requests.get(url=image_url, headers=headers).content

            # 图片保存
            with open(path + "/" + str(i) + ".jpg", 'wb')as f:  # 以wb方式打开文件,b就是binary的缩写,代表二进制
                f.write(res)
        print("+" * 40)



if __name__ == "__main__":
	#进行多页爬取,参考图5
    for i in range(3):
        url = "http://desk.zol.com.cn/pc/"+str(i + 1)+".html"

        response = requests.get(url=url, headers=headers)
        response.encoding = "GB2312"
        download(response)


三、图片辅助分析

图1
在这里插入图片描述


图2
在这里插入图片描述


图3
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


图4
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


图5
在这里插入图片描述


四、运行结果

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


博主会持续更新,有兴趣的小伙伴可以点赞、关注和收藏下哦,你们的支持就是我创作最大的动力!

更多Python爬虫有关文章

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值