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

如何在解析RSS Feed的description标签时排除图片div?

解决RSS Description中排除图片Div的内容提取问题

可以通过再次解析Description内的HTML内容实现需求,具体操作如下:

  1. 先获取Description标签内的CDATA文本内容
  2. 将这段文本传入BeautifulSoup,用html.parser解析成HTML结构
  3. 定位到包含img标签的div元素并移除
  4. 提取剩余的纯文本内容

修改后的代码示例:

import requests
from bs4 import BeautifulSoup

resp = requests.get(url)
soup = BeautifulSoup(resp.content, features="xml")
items = soup.findAll('item')

news_items = []
for item in items:
    news_item = {}
    news_item['title'] = item.title.text
    news_item['link'] = item.link.text
    news_item['pubDate'] = item.pubDate.text
    
    # 处理description中的内容
    desc_raw = item.description.text
    desc_soup = BeautifulSoup(desc_raw, "html.parser")
    
    # 移除包含img的div
    target_div = desc_soup.find('div', img=True)
    if target_div:
        target_div.decompose()
    
    # 提取清理后的文本,可根据需求调整参数
    news_item['description'] = desc_soup.get_text(strip=True, separator=' ')
    
    news_items.append(news_item)

补充说明

  • 如果需要移除所有包含img的div,把find改成find_all,循环处理每个匹配到的元素:
    for div in desc_soup.find_all('div', img=True):
        div.decompose()
    
  • get_text()的参数可灵活调整:strip=True会去除文本首尾的空白字符,separator=' '用空格分隔不同段落的文本,避免内容堆叠。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 17:17:19