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个跨度,它看不见。
我的问题是在电子邮件链接中找到可见的文本??
答案 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:” - 您只需更换它即可。