2 回答
TA贡献1712条经验 获得超3个赞
使用一些正则表达式逻辑,您可以直接找到<p>包含电话号码的标签:
import re
from bs4 import BeautifulSoup
html = """<div>
<p>Email: someone@somewhere.com</p>
<p></p>
<p>Postal code: B3H 2F5</p>
<p>Telephone: 1234567890</p>
</div>"""
soup = BeautifulSoup(html)
#Find the tag containing "Telephone:"
phone_tag = soup.find('p', text=re.compile('Telephone:'))
if phone_tag:
phone = phone_tag.text.replace('Telephone:','').strip()
else:
phone = None
TA贡献1890条经验 获得超9个赞
事实证明,我不知道使用 搜索此字符串的更好方法re.compile。我会在这里发布答案,以防其他人正在寻找同样的东西。
对我有用的是:
phoneNumber = soup.find('p', text = re.compile('Telephone:'))
这给了我字符串出现的整个 p 标签,我一开始没有意识到,所以我可以这样做:
if phoneNumber:
phoneNumber = phoneNumber.get_text().strip().replace('Telephone:', '')
else:
phoneNumber = ('None')
添加回答
举报