我正在尝试创建一个解析网站电子邮件地址和电话号码的脚本。我有一些代码,但它有错误,我不太确定如何解决。有人可以帮忙吗?我之前发过一个关于这个问题的问题,但是昨天我太过分了,我退后一步,今天又试了一次,效果更好但是我还需要一点帮助吗?谢谢。
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封电子邮件,而且没有电话号码。我想要它搜索网站上的所有页面而不仅仅是第一页。你能告诉我哪里出错了吗?
答案 0 :(得分:0)
正则表达式的开头在两种情况下看起来不同。数字的正则表达式以萎缩
开头emails = re.findall(r'\w+@\w+', page)
numbers = re.findall('r‘\d+[- ]\d+', page)