当前位置:首页 > 行业动态 > 正文

html代码提取图片

使用Python的BeautifulSoup库解析HTML,通过find_all(‘img’)获取所有标签,提取src属性即可

HTML图片标签结构

HTML中图片通过<img>标签插入,核心属性为src(图片路径)和alt(替代文本)。

<img src="https://example.com/image.jpg" alt="示例图片" />

手动提取图片方法

  1. 查看网页源代码

    html代码提取图片  第1张

    • 右键网页 → 选择“查看页面源代码”
    • 使用浏览器搜索功能(Ctrl+F)输入<img定位图片标签
    • 提取src属性值(如图)
  2. 浏览器开发者工具

    • 右键图片 → 选择“检查”
    • 在Elements面板直接查看src属性
    • 支持复制完整URL(含协议头)

工具辅助提取

方法 工具/操作 适用场景
浏览器插件 Image Downloader扩展 快速批量下载页面图片
代码编辑器 VSCode正则搜索<img.?src=".?" 分析本地HTML文件
命令行工具 grep -o 'src=".?"' file.html 服务器端批量处理

Python代码提取示例

from bs4 import BeautifulSoup
import requests
# 获取网页内容
url = "https://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
# 提取所有图片URL
images = []
for img in soup.find_all("img"):
    src = img.get("src")
    # 处理相对路径
    if src.startswith("/"):
        src = url + src
    elif src.startswith("//"):
        src = "https:" + src
    images.append(src)
print("提取到的图片地址:")
for img_url in images:
    print(img_url)

常见问题与解答

问题1:如何判断图片路径是绝对路径还是相对路径?

  • 绝对路径:以http://https://开头,或以开头(相对于域名根目录)
  • 相对路径:以、或文件名开头(相对于当前文件位置)
  • 处理方法:使用Python的urljoin函数拼接相对路径:
    from urllib.parse import urljoin
    full_url = urljoin(base_url, relative_path)

问题2:如何过滤掉网页中的装饰性图片(如图标、背景图)?

  • 策略1:通过CSS类名筛选,例如排除含icon-bg-类的图片
    for img in soup.find_all("img", class_=lambda x: not x.startswith("icon-")):
        # 处理逻辑
  • 策略2:结合图片尺寸过滤,例如排除宽度<50px的图片
    for img in soup.find_all("img"):
        width = int(img.get("width", 0))
        if width >= 50:
            # 保留
0