Beautiful Soup库find_all函数

本文介绍了如何使用Python的BeautifulSoup库中的find_all方法,针对HTML文档搜索子节点,如表格数据。通过实例演示了遍历表格行和列,提取数据并存储到pandasDataFrame中,强调了find_all方法在处理HTML结构时的灵活性和实用性。
摘要由CSDN通过智能技术生成

在Beautiful Soup库中,find_all 用于搜索当前标签的所有子节点,并返回所有符合条件的子节点的列表。find_all 方法可以接收多种类型的参数,如标签名、属性、文本内容等,来定位HTML文档中的元素。

举个栗子,用find_all 遍历HTML表格的行和列,提取表格数据并保存到dataframe:

table_data = []  
for row in first_table.find_all('tr'):  
    cells = row.find_all(['td', 'th'])  # 同时考虑<td>和<th>标签  
    if cells:  
        # 提取并清理单元格文本  
        cleaned_cells = [cell.get_text(strip=True) for cell in cells]  
        table_data.append(cleaned_cells)  

df = pd.DataFrame(table_data[1:], columns=table_data[0])  # 假设第一行是列名 

这里find_all 方法被调用了两次:

  1. 第一次是在 first_table 对象上调用,用于找到表格中所有的行(<tr> 标签)。
  2. 第二次是在每一行(row 对象)上调用,用于找到该行中所有的单元格,即 <td> 或 <th> 标签。这里传递了一个列表 ['td', 'th'] 作为参数,告诉 find_all 方法要查找这两种类型的标签。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值