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

在BeautifulSoup(bs4)的NavigableString中提取图片URL的方法求助

从RSS的content:encoded中提取图片URL

你可以通过两种常见方法提取嵌套在content:encoded文本里的图片URL:

方法1:用BeautifulSoup二次解析HTML

content:encoded里的内容本质是HTML字符串,直接把它传给BeautifulSoup做二次解析,就能像处理普通HTML一样提取img标签的src属性,这也是最可靠的方式:

from bs4 import BeautifulSoup

# 假设你已经通过findAll获取到content:encoded的元素集合
content_encoded_items = soup.findAll('content:encoded')

for item in content_encoded_items:
    # 将content:encoded内的文本转为可解析的HTML对象
    inner_html = BeautifulSoup(item.text, 'html.parser')
    # 查找所有img标签
    img_elements = inner_html.find_all('img')
    # 遍历提取src属性
    for img in img_elements:
        img_url = img.get('src')
        if img_url:
            print(img_url)  # 这里就是目标图片URL

方法2:用正则表达式匹配

如果场景简单,也可以用正则直接匹配img标签里的src属性,适合快速实现,但要注意正则对复杂HTML结构的兼容性较差:

import re

# 同样基于已获取的content:encoded元素集合
content_encoded_items = soup.findAll('content:encoded')

# 正则规则:匹配img标签内的src属性,兼容单双引号或无引号的写法
src_pattern = re.compile(r'<img[^>]+src=["\']?([^"\'>]+)["\']?')

for item in content_encoded_items:
    img_urls = src_pattern.findall(item.text)
    for url in img_urls:
        print(url)

额外提示

如果提取到的是相对路径(比如/uploads/2024/05/image.jpg),需要拼接RSS源的基础域名(比如https://example.com)才能得到完整可访问的URL。

内容的提问来源于stack exchange,提问作者Yusuf Selim KARATAS

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 00:55:13