0
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>...

然后我用萤火虫检查 HTML

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

4

2 回答 2

1

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

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

如果您不需要“mailto:” - 您可以替换它。

于 2013-09-24T08:21:48.283 回答
1

您应该使用find_all而不是find.

于 2013-09-24T07:20:05.410 回答