我正在尝试从一个网页中抓取一些数据。有换行符和<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/