Python 获取元气桌面壁纸返回图片源

在看到元气桌面这么高质量的图源后,萌生了一种不可描述的想法。

需求

需要安装 requests 库和 lxml  模块。

pip install lxml

代码

import os
import requests
from lxml import etree
import urllib.parse
import re
import time

url = ' 目标地址'

headesp = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Edg/113.0.1774.35'}

with open(' 保存的.txt 文件', 'a', encoding='utf-8') as f:
    for i in range(45):
        # 使用正则表达式提取页码部分
        match = re.search(r'p(\d+)', url)
        if match:
            num_str = match.group(1)
            print(f" 提取到的页码:{num_str}")
            num = int(num_str) + 1
            new_url = url.replace(f'p{num_str}', f'p{num}')
        else:
            print(" 无法提取页码,退出循环。")
            break

        response = requests.get(new_url, headers=headesp)
        print(f" 请求新 URL 的状态码:{response.status_code}")
        time.sleep(2)  # 添加 2 秒延迟

        html = response.content

        selector = etree.HTML(html)

        links = selector.xpath('/html/body/div/div/div/div[1]/main/div/div[1]/section/ul/li/div/a/@href')

        for link in links:
            response = requests.get(link)
            html = response.content

            selector = etree.HTML(html)

            img_links = selector.xpath('/html/body/div/div/div/div[1]/main/div/div[1]/div/div[2]/div[1]/img[1]/@src')[0]

            split_data = urllib.parse.urlsplit(img_links)

            new_links = urllib.parse.urlunsplit((split_data[0], split_data[1], split_data[2], None, None))

            # 保存链接到文件
            f.write(f'{new_links}\n')

        url = new_url
print(" 再次提醒:本代码的使用应严格遵守法律法规,不得用于违规行为。")