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

如何在BeautifulSoup中拆分find()结果,单独提取各文档名称

解决方法

问题出在目标网页的HTML结构不规范——外层<li>标签里嵌套了多个内层<li>,导致你原来的find_all('li')只能拿到外层的几个大条目,每个条目里包含多个文档。

直接定位到所有文档对应的<a>标签即可,因为每个文档名称都在<a>标签内:

from urllib.request import urlopen
from bs4 import BeautifulSoup

page = urlopen("https://www1.dnit.gov.br/editais/consulta/resumo.asp?NUMIDEdital=9109")
html = page.read().decode("utf-8")
soup = BeautifulSoup(html, "lxml")

# 定位到"Arquivos de Licitação"对应的面板
link_panel = soup.find("ul", class_="links")

# 递归查找面板下所有的<a>标签(不管嵌套层级)
document_links = link_panel.find_all('a')

# 提取每个文档的名称,strip=True去除多余空格和换行
document_names = [link.get_text(strip=True) for link in document_links]

# 输出结果
for name in document_names:
    print(name)

如果想同时保留每个文档的链接,可修改为:

document_info = [{"name": link.get_text(strip=True), "url": link['href']} for link in document_links]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 00:10:51