在可见的链接中查找文本

时间:2013-09-24 07:16:29

标签: python beautifulsoup

page = urlopen("http://members.calbar.ca.gov/fal/Member/Detail//50225")
soup = BeautifulSoup(page.read()).find("div", {"id": "moduleMemberDetail"})

if soup.find("td",text=re.compile(r"e-mail:")) :
    email = soup.find("td",text=re.compile(r"email:")).findNext('td').encode_contents().strip()
print(email) 

输出

<span href="mailto:klwfge@rsrftff.edu" id="e0">dunpsr@tnkroqew<span>.</span>net</span>...

然后我用firebugs检查HTML

事实证明它有超过1个跨度,它看不见。
我的问题是在电子邮件链接中找到可见的文本??

2 个答案:

答案 0 :(得分:1)

您应该使用find_all代替find

答案 1 :(得分:1)

如果您想要href值可能会有所帮助:

for node in soup.find_all('span', attrs = {'href': re.compile((r'.*mail.*'))} ):
    print(node.get('href'))

如果您不需要“mailto:” - 您只需更换它即可。