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

如何使用Beautiful Soup移除HTML中含可变年份的版权段落?

移除含可变年份的版权段落方案

方法1:直接定位最后一个p标签(最简便)

如果能确定版权信息始终是最后一个p标签,直接通过索引定位并移除,无需匹配文本:

from bs4 import BeautifulSoup

# 假设已完成页面内容解析
soup = BeautifulSoup(html_content, 'html.parser')
target_div = soup.find('div')
all_p = target_div.find_all('p')

# 从DOM中彻底删除最后一个p标签
if all_p:
    all_p[-1].decompose()
    # 若只是过滤文本列表,直接切片即可:
    # filtered_texts = [p.get_text(strip=True) for p in all_p[:-1]]

# 提取剩余p标签的文本内容
result_texts = [p.get_text(strip=True) for p in target_div.find_all('p')]

方法2:正则匹配版权特征(更严谨)

如果最后一个p标签不一定是版权,或需要精准匹配含可变年份的内容,用正则匹配包含版权符号©和固定后缀的段落:

import re
from bs4 import BeautifulSoup

soup = BeautifulSoup(html_content, 'html.parser')
target_div = soup.find('div')
# 替换为实际的固定版权后缀,比如"保留所有权利"
copyright_regex = re.compile(r'© \d{4} 保留所有权利')

for p in target_div.find_all('p'):
    p_text = p.get_text(strip=True)
    if copyright_regex.match(p_text):
        p.decompose()
        break  # 找到目标段落就停止遍历

result_texts = [p.get_text(strip=True) for p in target_div.find_all('p')]

说明:

  • 正则里的\d{4}匹配四位可变年份,固定内容部分请根据实际页面文本修改。
  • 若页面用的是全角版权符号©,直接替换正则中的符号即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 14:52:07