2012-11-12 96 views
0

這個程序將運行在一個網站上,並找到所有的電子郵件,並返回它們。電子郵件查找器(網絡)

def testEmails(url): 
    'Test the emails() function' 
    email = '' 
    content = urlopen(url).read().decode() 
    pattern='[A-Za-z0-9_.]+\@[A-Za-z0-9_.]+\.' 
    for attr in content: 
     if attr[0] == 'href': 
      print(attr) 
      email+='{} '.format(attr) 
    emails = re.findall(pattern,email) 
    return emails 

我不斷收到一個空白字符串任何人都知道爲什麼?

編輯:

這是我當前的代碼:

def emails(content): 
'return list of email addresses contained in string content' 
    email = [] 
    content = urlopen(url).read().decode() 
    pattern='[A-Za-z0-9_.]+\@[A-Za-z0-9_.]+\....' 
    email.append(re.findall(pattern,content)) 
    print(email) 

,但由於某種原因,我得到:的

[['[email protected]"']] 

代替:

['[email protected]'] 

回答

2

urlopen().read().decode()返回unicode s特林。因此循環遍歷它通過單個字符循環。不是您要查找的HTML屬性。您應該使用HTMLParser來提取屬性,或在整個文檔上運行re.findall(粗體,但也會以明文形式提取電子郵件地址)。

+0

雅,我試圖避免整個提取整個事情,但如果沒有其他方式與我有... –

+0

已更新我的代碼 –