这就是HTML:
<td>
<font face="Arial, sans-serif" size="-1">
<b>Home Phone: </b>507-383-1070<br>
<b>Cell Phone: </b>507-383-1070<br>
<b>E-Mail: </b><a href=mailto:macehrhardt@gmail.com>macehrhardt@gmail.com</a><br>
</font>
</td>
我只想抓取Home Phone
和Cell Phone
的数据,例如。 507-383-1070
。你能帮我解决一下我将如何使用BeautifulSoup来解决这个问题。我尝试了多种方法,但没有找到任何方法。
答案 0 :(得分:0)
您可以将soup.find_all
与正则表达式一起使用。
>>> soup.find_all(text=re.compile('\d+(-\d+){2}'))
['507-383-1070', '507-383-1070']
您可能需要调整正则表达式,具体取决于您尝试提取的电话号码的格式。
答案 1 :(得分:0)
对于您提供的HTML,可以按如下方式提取它们:
from bs4 import BeautifulSoup
html = """<td>
<font face="Arial, sans-serif" size="-1">
<b>Home Phone: </b>507-383-1070<br>
<b>Cell Phone: </b>507-383-1070<br>
<b>E-Mail: </b><a href=mailto:macehrhardt@gmail.com>macehrhardt@gmail.com</a><br>
</font>
</td>"""
soup = BeautifulSoup(html, "html.parser")
entries = [b.next.next for b in soup.find_all('b')][:2]
print entries
给你:
[u'507-383-1070', u'507-383-1070']