【问题标题】:Python, trying to parse html to attain email addressPython,试图解析 html 以获取电子邮件地址
【发布时间】:2014-08-04 22:33:30
【问题描述】:

我正在使用 beautifulsoup 获取电子邮件地址,但是我遇到了问题。 我不知道从哪里开始解析,以获得电子邮件地址。

> #input:     url
> #output:    address
> 
> def urlSC(url):
>     soup = BeautifulSoup(urllib2.urlopen(url).read())
>     #word =  soup.prettify() 
>     word = soup.find_all('a')
>     print word
>     return word

输出:

>     [<a href="default.aspx"><img alt="·Î°í" border="0" src="image/logo.gif"/></a>, <a href="http://www.ctodayusa.com"><img
> border="0" src="image/ctodayusa.jpg"><a></a>
>     </img></a>, <a></a>, <a href="mailto:rev_han777@yahoo.com" id="hlEmail">rev_han777@yahoo.com</a>, <a id="hlHomepage"></a>, <a
> href="javascript:img_up('','','');"><img border="0" class="img"
> src="upload/" vspace="10" width="1"/></a>, <a
> href="javascript:img_up('','','');"><img border="0" class="img"
> src="upload/" vspace="10" width="1"/></a>, <a
> href="javascript:openWin('http://maps.yahoo.com/maps_result?addr=2100
> De armoun Rd.&amp;csz=99515&amp;country=us')" id="hlMap"><img
> border='0"' src="images/globe.gif"> 위치</img></a>, <a
> href="javascript:print()"><img border="0" src="images/printer.gif">
> 프린트</img></a>, <a href="javascript:mail_go('rev_han777@yahoo.com',
> '2Y5E9%2bk0h%2b4P%2f0H3jEJTq9VUG%2f0gaj40')" id="hlSendMail"><img
> border="0" src="images/mails.gif"> 메일보내기</img></a>, <a
> href="javascript:history.go(-1)"><img border="0"
> src="images/list.gif">
>     </img></a>, <a href="UpdateAddress.aspx?OrgID=4102" id="hlModify"><img alt="" border="0" src="Images/Modify.gif"/></a>]

我想要这个电子邮件:rev_han777@yahoo.com

【问题讨论】:

标签: python html regex html-parsing beautifulsoup


【解决方案1】:

通过id获取a元素,从href属性值中提取mailto:之后的所有内容:

link = soup.find('a', id='hlEmail')
print link['href'][7:]

演示:

>>> from bs4 import BeautifulSoup
>>> import urllib2
>>> url = "http://www.koreanchurchyp.com/ViewDetail.aspx?OrgID=4102"
>>> soup = BeautifulSoup(urllib2.urlopen(url))
>>> link = soup.find('a', id='hlEmail')
>>> print link['href'][7:]
rev_han seven seven seven at yahoo.com  #  obfuscated intentionally

【讨论】:

  • 什么,没有正则表达式?... :) +1
猜你喜欢
  • 2011-01-07
  • 1970-01-01
  • 2013-08-18
  • 2011-11-27
  • 1970-01-01
  • 2019-04-03
  • 2011-05-14
  • 1970-01-01
  • 2022-07-14
相关资源
最近更新 更多