爬虫回车壁纸大题

wzzyhg 48 0

下面是这段 Selenium 壁纸爬虫的 背诵用简化版本(含注释)

✅ 代码

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait  # 显式等待
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By              # 定位方式
import os
import requests
import time

class WallPaperSpider:
    def __init__(self):
        self.url = 'https://mm.enterdesk.com/'  # 网站主页
        self.dir = 'MMimages'                   # 图片保存文件夹

    def get_html(self):
        browser = webdriver.Chrome()            # 打开浏览器
        browser.get(self.url)                   # 请求网页

        # 等待页面中的 .egeli_pic_m 元素加载出来
        wait = WebDriverWait(browser, 10)
        wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, ".egeli_pic_m")))

        # 向下滚动两次,加载更多图片
        for i in range(2):
            browser.execute_script("window.scrollTo(0, document.body.scrollHeight);")
            time.sleep(3)

        # 获取包含图片的主区域
        pic_m = browser.find_element(By.CSS_SELECTOR, ".egeli_pic_m")

        # 获取所有图片元素
        pic_li = pic_m.find_elements(By.CSS_SELECTOR, ".egeli_pic_li dl dd a img")

        pic_list = []
        for pic in pic_li:
            img = {
                'pic_url': pic.get_attribute('src'),     # 获取图片地址
                'pic_title': pic.get_attribute('title')  # 获取图片标题
            }
            pic_list.append(img)

        return pic_list

    def save_to_images(self, pic_list):
        # 如果文件夹不存在就创建
        if not os.path.exists(self.dir):
            os.makedirs(self.dir)

        # 遍历图片列表进行下载
        for pic in pic_list:
            img_path = os.path.join(self.dir, pic['pic_title'] + '.jpg')
            res = requests.get(pic['pic_url'])
            with open(img_path, 'wb') as f:
                f.write(res.content)
            print('正在保存第{}张'.format(pic_list.index(pic) + 1))

    def main(self):
        pic_list = self.get_html()          # 获取图片列表
        self.save_to_images(pic_list)       # 保存图片

if __name__ == '__main__':
    spider = WallPaperSpider()              # 创建对象
    spider.main()                           # 启动程序

🧠 背诵结构提示

你只要记住这 五步流程:

  1. 导入模块(selenium、requests、os、time)
  2. 构造类 WallPaperSpider
  3. get_html() → 用浏览器打开网页,抓取图片地址
  4. save_to_images() → 保存图片到本地
  5. main() → 调用抓取和保存方法

📌 关键点助记词(口诀式)

selenium 打开网页,等元素滚两下;
找图片存标题,抓链接放进家;
遍历图片地址,requests 抓图不怕;
写入文件夹,保存成功笑哈哈!

发表评论 取消回复
表情 图片 链接 代码

分享