python - BeautifulSoup 和表格行内的换行符?

标签 python html-parsing beautifulsoup

示例代码:

from BeautifulSoup import BeautifulSoup, SoupStrainer

html='''<tr>
<td align="left">Foo<br />
Bar<br /></td>
</tr>'''

soup=BeautifulSoup(html)
rows=soup.findAll('tr')
print rows
print rows[0].text.encode("utf8")

我希望输出类似于“Foo Bar”,或者即使两行之间有一个实际的换行符也可以,但我得到的输出只有“FooBar”,请注意没有空格两条线之间。

对 python 和 beautifulsoup 非常陌生,有人可以帮忙吗?

最佳答案

您可以使用 cell = rows[0].find('td') 更进一步, 然后使用 cell.contents 查看其内容,然后过滤你需要的元素,然后join他们用空格。

另一种选择:您可以使用正则表达式来替换 <br />通过一个空间。为此你可以写:

import re
s = re.sub('<br\s*?>', ' ', rows[0].text)

然后你可以将多个连续的空格替换为

s = re.sub('\s+', ' ', s)

那么字符串应该是这样的:

>>> print s
<tr> <td align="left">Foo Bar </td> </tr>

然后你就可以轻松的提取你需要的部分了。

关于python - BeautifulSoup 和表格行内的换行符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8937940/

相关文章:

python - 从 Excel 工作表导出后如何清理数据框中的日期时间字符串?

python - Pandas:多索引列标题

html-parsing - Scrapy - 如何每天抓取新页面

java - 如何在解析 Google-trends html 响应时删除状态 203 错误?

c# - 使用 HTML Agility Pack 和 Linq 解析 html

python - 如何解析目录中的每个 html 文件中的图像?

python - 如何定义导入python库的路径

python - 编写可维护的网络抓取工具的最佳实践是什么?

Python 跟随 Window.Location 重定向

python - 执行错误 : The variable display is not defined. (-2753)