2015-04-14 91 views
-6

下面是一个简单的HTML提取联系人信息,与蟒蛇

<div class="yui3-u-5-6" id="browse-products"> 
<div id="kazbah-contact"> 
    <span class="contact-info-title">Contact 00Nothing:</span> 
    <a href="mailto:[email protected]">[email protected]</a> | 800-410-2074 
    | C/O Score X Score 
    &nbsp;8118-D Statesville Rd 
    , 
    Charlotte, 
    NC 
    28269 
</div> 
<div class="clearfix"></div> 

我想在这里提取联系人信息,电子邮件,电话和地址。 我应该如何用python来做到这一点?由于

+1

看看这个:http://stackoverflow.com/questions/11709079/parsing-html-python – RafaelC

+0

@RafaelCardoso我读到了。但是如何在“|”之后获得信息?我的意思是,获取[email protected]很容易,但很难得到电话和地址 –

+0

也许['split']的文档(https://docs.python.org/3/library/stdtypes.html#str .split)将向您展示如何提取这些“硬”部分。另外,如果你展示你自己尝试过的某种形式的代码,那么在将来考虑你会得到(更好的)答案。如果你特意写出获取电子邮件地址很容易,那么为什么你没有复制你在问题中使用的代码?看看[写完美的问题](http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/)和[如何问](https://stackoverflow.com/help /如何对问)。 –

回答

0

我使用此代码提取信息

# _*_ coding:utf-8 _*_ 
import urllib2 
import urllib 
import re 
from bs4 import BeautifulSoup 
import sys 
reload(sys) 
sys.setdefaultencoding('utf-8') 

def grabHref(url,localfile): 
    html = urllib2.urlopen(url).read() 
    html = unicode(html,'gb2312','ignore').encode('utf-8','ignore') 
    soup = BeautifulSoup(html) 
    myfile = open(localfile,'wb') 
    for link in soup.select("div >   a[href^=http://www.karmaloop.com/kazbah/browse]"): 
     for item in BeautifulSoup(urllib2.urlopen(link['href']).read()).select("div > a[href^=mailto]"): 
      contactInfo = item.get_text() 
      print link['href'] 
      print contactInfo 

     myfile.write(link['href']) 
     myfile.write('\r\n') 
     myfile.write(contactInfo) 
     myfile.write('\r\n') 
    myfile.close() 



def main(): 
    url = "http://www.karmaloop.com/brands" 
    localfile = 'Contact.txt' 
    grabHref(url,localfile) 
if __name__=="__main__": 
    main() 

但我仍然只能得到电子邮件地址在这里,我怎么能得到电话号码和地址?谢谢

+0

我现在得到。但对于CSS选择器,“div> a [href^= mailto]”可能不存在。我想继续如果找不到“div> a [href^= mailto]”,我该怎么办? –

+0

我写如果BeautifulSoup(urllib2.urlopen(link ['href']).read())。select(“div> div [id^= kazbah-contact]”)==假: 继续,但它doesn' t工作 –

+0

欢迎来到Stack Overflow。这不是一个答案。您应该编辑您的原始问题以包含新信息,或者打开一个单独的问题。 – Bryan