8.获取彼岸桌面壁纸

"""
需求:获取彼岸桌面高清图片
思路:
1、请求列表页,解析网页数据获取每张壁纸的详情页url,拼接url地址;
2、请求详情页,解析网页数据获取每张壁纸的图片url地址以及标题;
3、请求图片真实url地址,如:https://img.netbian.com/file/2026/0902/093405AUszi.jpg 保存壁纸

【关键流程为】:列表页→详情页→高清页→图片
"""

import parsel
import requests
# 关闭ssl警告
requests.packages.urllib3.disable_warnings()

# 1.访问壁纸详情页
page_url = "https://www.netbian.com/"
headers = {
    "User-Agent": "Mozilla/ 5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36",
    "Referer": "https://www.netbian.com/"

}
# 2.请求列表页
resp_page = requests.get(url=page_url, headers=headers, verify=False)
resp_page.encoding = "gbk"  # 彼岸网页是gbk编码!解析文字才需要编码
selector = parsel.Selector(resp_page.text)

# 3.提取图片详情页面地址
lis = selector.css(".list ul li")
# print(lis)
for li in lis:
    href = li.css("a::attr(href)").get()
    # print(href)
    title = li.css("a::attr(title)").get()
    # print(href)
    if title:
        # 4.拼接完整图片地址
        img_url = "https://www.netbian.com" + href
        # print(img_url,title)
        # 5.访问详情页面,提取高清图片地址
        html_data = requests.get(url=img_url, headers=headers, verify=False)
        html_data.encoding = "gbk"
        sel = parsel.Selector(html_data.text)
        img_src = "https://www.netbian.com" + sel.css(".pic a::attr(href)").get()  # 高清图片链接地址
        print(title,img_src)
        # break
        # 6.请求高清页面
        hd_img = requests.get(url=img_src, headers=headers, verify=False)
        sel1 = parsel.Selector(hd_img.text)
        hd_img_url = sel1.css("#endimg a::attr(href)").get()
        hd_img_url_1 = hd_img_url.replace("https://", "http://")
        # print(hd_img_url)
        # break
        # 7.请求真实图片地址,下载图片,二进制content,不用设置编码
        # wb = write binary 以二进制写入
        hd_content = requests.get(url=hd_img_url_1,headers=headers,verify=False).content

        with open("img_bian\\" + title +".jpg", "wb") as f:
            f.write(hd_content)
print("图片下载完成!")



"""
https://www.netbian.com/desk/36389.htm   详情页面
https://www.netbian.com/desk/36389-1920x1080.htm  高清页面
https://img.netbian.com/file/2026/0902/093405AUszi.jpg  图片真实地址

1.请求列表页 --> 2.https://www.netbian.com/desk/36395.htm --> 3.https://www.netbian.com/desk/36395-1920x1080.htm  -->
4.https://img.netbian.com/file/2026/0903/224628KscQR.jpg
"""

image
坑点:只能获取到小图片,原因是https会被拦截,另外还有一层高清图片地址,需多请求一次

解决方法:最后一步下载前,把 https:// 换成 http://

posted @ 2026-09-04 16:53  無心的Man  阅读(33)  评论(0)    收藏  举报