【发布时间】:2011-04-23 07:45:19
【问题描述】:
我第一次使用 BeautifulSoup 并尝试从汤对象中收集一些数据,例如电子邮件、电话号码和邮寄地址。
使用正则表达式,我可以识别电子邮件地址。我查找电子邮件的代码是:
def get_email(link):
mail_list = []
for i in link:
a = str(i)
email_pattern = re.compile("<a\s+href=\"mailto:([a-zA-Z0-9._@]*)\">", re.IGNORECASE)
ik = re.findall(email_pattern, a)
if (len(ik) == 1):
mail_list.append(i)
else:
pass
s_email = str(mail_list[0]).split('<a href="')
t_email = str(s_email[1]).split('">')
print t_email[0]
现在,我还需要收集电话号码、邮寄地址和网址。我认为在 BeautifulSoup 中必须有一种简单的方法来查找这些特定数据。
一个示例html页面如下:
<ul>
<li>
<span>Email:</span>
<a href="mailto:abc@gmail.com">Message Us</a>
</li>
<li>
<span>Website:</span>
<a target="_blank" href="http://www.abcl.com">Visit Our Website</a>
</li>
<li>
<span>Phone:</span>
(123)456-789
</li>
</ul>
并且使用BeatifulSoup,我正在尝试收集电子邮件、网站和电话的跨度值。
提前致谢。
【问题讨论】:
-
这是一个很好的入门教程crummy.com/software/BeautifulSoup/…
-
@demas 刚刚解决了获取所有 ul 标签的问题,然后仅提取所需的 ul,它工作正常,感谢链接:)
-
请阅读 BeautifulSoup 文档。不知道为什么我们应该为您重复现有的和详细的文档。如果您对 Beautifulsoup 有特定问题,请回来。
标签: python beautifulsoup