使用Beautiful Soup选择嵌套元素

1 投票
2 回答
3400 浏览
提问于 2025-04-18 16:07

我有以下的HTML代码:

<div class="leftColumn">
  <div>
     <div class="static">
     text1
     <br>
     text2
     <br>
     (222) 123 - 4567
     <br>
     <div class="summary">

我该如何使用Beautiful Soup只选择文本行呢?

我尝试了很多方法,比如:

soup.select('.leftColumn div').text

但到现在为止都没有成功。

2 个回答

4

Mauro的回答可能更符合你的需求,但这是另一种方法,也是我想到的获取内部div文本的方式:

from bs4 import BeautifulSoup
html = '''<div class="leftColumn">
  <div>
     <div class="static">
     text1
     <br>
     text2
     <br>
     (222) 123 - 4567
     <br>
     <div class="summary">
     '''
bs = BeautifulSoup(html)
for div in bs.findAll('div', attrs={'class': 'leftColumn'}):
    print div.findNext('div').findNext('div').text
1

BeautifulSoup 的 select 方法会返回一个列表。你需要指定列表中的索引。

soup.select('.leftColumn div')[0].text.split()

撰写回答