如何使用Python Selenium爬取网站搜索结果图片并保存到指定文件夹
gog-games站点搜索结果图片爬取实现方案
前置依赖安装
需要额外安装图片下载用到的requests库,执行命令:pip install requests
完整可运行代码
from selenium import webdriver from selenium.webdriver.common.keys import Keys import time import os import requests # 图片保存路径,可自行修改 SAVE_PATH = r"C:\Coding\Codes\Python\Image_Dataset" # Edge驱动本地路径 PATH = r"C:\Coding\Codes\Python\msedgedriver.exe" # 预先创建保存目录,避免后续报错 if not os.path.exists(SAVE_PATH): os.makedirs(SAVE_PATH) search = input("请输入你要搜索的游戏名称:") driver = None try: driver = webdriver.Edge(PATH) driver.maximize_window() driver.get("https://gog-games.com/") # 定位搜索框并输入关键词 searchbox = driver.find_element_by_xpath("/html/body/header/div/form/input") searchbox.send_keys(search) searchbox.send_keys(Keys.ENTER) # 等待搜索结果加载完成,网速慢可以适当调大数值 time.sleep(3) # 判断是否无搜索结果 no_result_tip = driver.find_elements_by_xpath("//*[contains(text(), 'No results')]") if len(no_result_tip) > 0: print("未找到对应搜索结果") else: # 定位所有搜索结果的游戏封面图 img_elements = driver.find_elements_by_xpath("//div[@class='game-item']//img") for index, img in enumerate(img_elements): img_url = img.get_attribute("src") # 拼接保存路径,用搜索关键词+序号作为文件名避免重名 img_save_path = os.path.join(SAVE_PATH, f"{search}_{index+1}.png") # 下载并保存图片 resp = requests.get(img_url) with open(img_save_path, "wb") as f: f.write(resp.content) print("搜索结果图片保存成功") finally: # 无论是否有结果,统一关闭浏览器 if driver: driver.quit()
注意事项
- 如果你使用的是Selenium 4及以上版本,原有驱动初始化写法会触发弃用告警,可替换为如下写法:
from selenium.webdriver.edge.service import Service driver = webdriver.Edge(service=Service(PATH)) - 可根据实际网速调整
time.sleep的数值,避免页面还没加载完成就查找元素导致报错 - 如需修改图片保存格式,直接修改文件名后缀即可
内容的提问来源于stack exchange,提问作者Joshua Balles
相关产品推荐
相关产品推荐

