python - 获取 <br/> 之前的文本 python/bs4

标签 python html beautifulsoup

我正在尝试从一个网页中抓取一些数据。有换行符和<br/>标签文本中的标签。我只想获取标签开头的电话号码。你能给我一个如何只获得号码的建议吗?

这是 HTML 代码:

<td>
    +421 48/471 78 14



    <br />
    <em>(bowling)</em>
</td>

在 beautifulsoup 中有没有办法获取标签中的文本,但只有那个文本,没有被其他标签包围?第二件事:摆脱文本换行符和 html 换行符?

我用的是 BS4。

输出将是:'+421 48/471 78 14'

你有什么想法吗? 谢谢

最佳答案

html="""
<td>
    +421 48/471 78 14



    <br />
    <em>(bowling)</em>
</td>
"""


from bs4 import BeautifulSoup

soup = BeautifulSoup(html)

print soup.find("td").contents[0].strip() 
+421 48/471 78 14

print soup.find("td").next_element.strip()
+421 48/471 78 14

soup.find("td").contents[0].strip() 找到我们获取第一个元素的 tag 的内容并删除所有\n 换行符与 str.strip()

来自文档 next_element :

字符串或标记的 .next_element 属性指向之后立即解析的内容

关于python - 获取 <br/> 之前的文本 python/bs4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25476316/

相关文章:

python - 如何从两个间隔中获取分割月份?

Python zipfile 通过 suds 发送错误 : "' ascii' codec can't decode byte 0x8c in position 10: ordinal not in range(128)"

python - 编码特殊字符以传递给 URL

javascript - 如何根据另一个部分的计算宽度设置一个部分的宽度?

php - bootstrap col 位置不会显示在旁边,总是显示在底部

Python3,BeautifulSoup 删除段落标签

python - 无法在 Ubuntu 中安装 Pytorch

javascript - 在浏览器中播放原始 h264 直播流

python - 如何从 xml tspan 标签中检索信息

html - 使用 Beautifulsoup 提取下一个和不同标签的内容