1

我一直在尝试解析存储在<td>标签之间的文本元素,例如:

<tr>
<td>Trading Hours</td>
<td><b>Monday</b> <br />
London - 23:00 Sunday - 23:00 Monday<br />
New York - 18:00 Sunday - 18:00 Monday<br />
Chicago - 17:00 Sunday - 17:00 Monday<br />
<br />
<b>Tuesday-Friday</b> <br />
London - 01:00 - 23:00<br />
New York - 20:00 - 18:00<br />
Chicago - 19:00 - 17:00<br />
</td>
</tr>

在这个简单的例子中,只有 2 个<td>标签,假设一个变量tr存储了整个 html 代码块。我提取文本的逻辑如下(没有任何<tr><br>标签):

for td in tr.findAll('td'):
    row.append((td.find('td', text = True)).strip().strip('\n'))

问题:我的for循环识别第一个<td>标签,但不是第二个。我该如何改进呢?

4

1 回答 1

1

text=True告诉 BeautifulSoup 寻找带有文本的元素。如果要获取文本,则需要使用.get_text()

td.find('td', text=True).get_text(strip=True)
于 2013-06-16T19:11:43.003 回答