Python 将BeautifulSoup与基本表一起使用的选项-无类ID,

Python 将BeautifulSoup与基本表一起使用的选项-无类ID,,python,beautifulsoup,html-table,Python,Beautifulsoup,Html Table,当您有一个没有类或属性值的表时,有没有推荐在python中使用BeautifulSoup 4的方法 我在考虑只使用Get_Text()来转储文本,但是如果我想挑选单个值,或者将表拆分为更为离散的部分,我该怎么做呢 奖品 普通学士学位 节目代码: 代码值 交付方式: 全场比赛结束时间 学期数: 6. NFQ级别: 7. 嵌入式奖励: 不 部门: 计算 方案成果 成功完成本课程后,学员将能够: PO1 知识广度 (a) •一些文本块 PO2 知识型 (a) •一些文本块 磷酸 技能范围 (a

当您有一个没有类或属性值的表时,有没有推荐在python中使用BeautifulSoup 4的方法

我在考虑只使用Get_Text()来转储文本,但是如果我想挑选单个值,或者将表拆分为更为离散的部分,我该怎么做呢


奖品
普通学士学位
节目代码:
代码值
交付方式:
全场比赛结束时间
学期数:
6.
NFQ级别:
7.
嵌入式奖励:
不
部门:
计算
方案成果

成功完成本课程后,学员将能够:

PO1 知识广度 (a) •一些文本块 PO2 知识型 (a) •一些文本块 磷酸 技能范围 (a) •一些文本块 PO4 技能选择性 (a) •一些文本块 PO5 能力-语境 (a)
您可以迭代某些标记。我不知道您想做什么,但是如果您想获取每个
标记的文本,那么只需迭代它们,并使用get_text()

首先,所有表的父表都有一个id属性-让我们将其作为搜索的基础:

super_table = soup.find("table", id="programmeDescriptor")
然后,根据您在注释中提到的内容,看起来您可以通过标题将每个内部表彼此区分开来。实现此逻辑的一个选项是查找标题,然后使用查找父表:

def get_table_by_header_name(super_table, header):
    return super_table.find("th", text=header).find_parent("table")
用法:

desired_table = get_table_by_header_name(super_table, "Awards")

您希望此特定表的输出是什么?Hi@alecxe我希望在尽可能干净地提取大部分文本以存储在csv或类似结构中之前,提取一些单独的值,如奖励值。是否有可能像Gabor Erdos提到的那样,遍历各种子表?我提供的代码片段就是我必须处理的代码。我可以使用` for child in ProgrammeDetails.find_all('table'):print(child.prettify())`拆分表,但这仍然存在一个问题,即知道哪个表包含“奖励值”,并且该值在表中的其他位置。有可能解决吗?对不起@alecxe我现在明白你的意思了。是否可以包括这样一个条件,即在“按标题获取表”的“名称”结果中只应有一组表标记?@Michael
find\u parent()
将为您找到找到的
th
元素的第一个
table
父级。