解析电子邮件地址/电话号码

时间:2013-11-25 14:44:52

标签: python

我正在尝试创建一个解析网站电子邮件地址和电话号码的脚本。我有一些代码,但它有错误,我不太确定如何解决。有人可以帮忙吗?我之前发过一个关于这个问题的问题,但是昨天我太过分了,我退后一步,今天又试了一次,效果更好但是我还需要一点帮助吗?谢谢。

import sys, urllib, re
from email.parser import Parser

def getEmail(page):
    print '[*] getEmail()'
    emails = re.findall(r'\w+@\w+', page)
    emails.sort()
    print '[+]', str(len(emails)), 'Emails Found:'

    for mail in emails:
        print mail

def getNumbers(page):
    print '[*] getNumbers()'
    numbers = re.findall('r‘\d+[- ]\d+', page)
    numbers.sort()
    print '[+]', str(len(numbers)), 'Numbers Found:'

    for no in numbers:
        print no

def main():
    sys.argv.append('http://www.edinburghcollege.ac.uk/')
    if len(sys.argv) != 2:
        print '[-] Usage: Webpage Email URL'
        return
    page = getWebpage.getWebpage(sys.argv[1])
    getEmail(page)
    getNumbers(page)

if __name__ == '__main__':
    main()

这是我得到的输出;

[*] getEmail()
[+] 2 Emails Found:
info@edinburghcollege
info@edinburghcollege
[*] getNumbers()
[+] 0 Numbers Found:

它只能找到2封电子邮件,而且没有电话号码。我想要它搜索网站上的所有页面而不仅仅是第一页。你能告诉我哪里出错了吗?

1 个答案:

答案 0 :(得分:0)

正则表达式的开头在两种情况下看起来不同。数字的正则表达式以萎缩

开头
emails = re.findall(r'\w+@\w+', page)
numbers = re.findall('r‘\d+[- ]\d+', page)

查看http://docs.python.org/2/library/re.html