You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Selenium通过指定XPath下载页面中的图片

解决方案

方案1:浏览器端直接下载(无需额外工具)

打开目标页面后按F12调出开发者工具,切换到「控制台」标签,执行以下代码即可直接提取图片并触发下载:

// 用你提供的XPath定位图片元素
const imgElement = document.evaluate('//*[@id="word-img"]/img', document).iterateNext();
if (imgElement) {
  const downloadLink = document.createElement('a');
  downloadLink.href = imgElement.src;
  downloadLink.download = 'target-word-image.png';
  downloadLink.click();
}

方案2:Python爬虫脚本下载

静态页面场景(页面源码可直接找到图片元素)

用requests + lxml实现:

import requests
from lxml import etree

# 替换为你实际的目标页面地址
TARGET_PAGE_URL = "替换为目标页面URL"
REQUEST_HEADERS = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}

# 1. 请求目标页面
page_response = requests.get(TARGET_PAGE_URL, headers=REQUEST_HEADERS)
page_html = etree.HTML(page_response.text)

# 2. 用指定XPath提取图片元素
img_nodes = page_html.xpath('//*[@id="word-img"]/img')
if img_nodes:
    img_src = img_nodes[0].get("src")
    # 3. 下载图片
    img_response = requests.get(img_src, headers=REQUEST_HEADERS)
    with open("downloaded_word_image.png", "wb") as f:
        f.write(img_response.content)
    print("图片下载成功")
else:
    print("未匹配到目标图片元素")

动态渲染页面场景(页面源码找不到图片元素)

用selenium模拟浏览器加载页面后再提取:

from selenium import webdriver
from selenium.webdriver.common.by import By
import requests

REQUEST_HEADERS = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}

# 初始化浏览器,提前安装对应版本的ChromeDriver
driver = webdriver.Chrome()
try:
    # 打开目标页面
    driver.get("替换为目标页面URL")
    # 定位图片元素
    img_element = driver.find_element(By.XPATH, '//*[@id="word-img"]/img')
    img_src = img_element.get_attribute("src")
    # 下载图片
    img_response = requests.get(img_src, headers=REQUEST_HEADERS)
    with open("downloaded_word_image.png", "wb") as f:
        f.write(img_response.content)
    print("图片下载成功")
finally:
    driver.quit()

注意事项

你要下载的是反爬验证类的动态生成图片,每次请求的rand参数都会更新,不要直接复用当前拿到的图片地址,必须先从页面中实时提取最新的图片地址再发起下载请求,否则会拿到过期失效的图片。

内容的提问来源于stack exchange,提问作者user16334850

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 07:33:00