【python实战系列】python实现邮件收集(一)

我们经常会有这样的困扰,当别人需要你帮忙手机某个网页上或某个文献里面的所有邮箱,这看起来是一个简单的活。

但如果网站或文献上的数据杂乱又繁多,收集起来极其有难度。这时,我们可以使用python来解决这一问题

 

话不多说,接下来我们就来实战一波

列出解题思路:

  1. 为邮件创建一个正则表达式

  2. 在剪切板文本中找到所有匹配

  3. 将符合的数据收集起来

  4. 将所有邮箱输出

 

第一步 写出一个匹配邮箱格式的正则表达式

import re # 引入正则表达式模块
emailRegex = re.compile(r'''(
    [a-zA-Z0-9._%+-]+    # 匹配@前面的部分  字母数字下划线小数点等符号
    @                    # @ 必须要有@符号
    [a-zA-Z0-9.-]+       # 任意数字字母小数点还有-
    (\.[a-zA-Z]{2,4})    # 必须含有一个.  .后面必须带2-4个字母
)''', re.VERBOSE)   # re.VERBOSE 表示允许正则后面添加注释

 

写好邮箱格式我们也可以去自己验证一下,贴出测试的地址:https://c.runoob.com/front-end/854

 

第二步 在剪切板文本中找到所有匹配

要满足第二步,需要引入一个剪切板的模块

import pyperclip
text = str(pyperclip.paste())

 

第三步 将所有符合的数据收集起来​​​​​​​

matches = []  # 使用一个数组收集数据
for groups in emailRegex.findall(text):
    matches.append(groups[0])

 

 

第四步 将所有邮箱输出​​​​​​​

if len(matches) > 0:
    pyperclip.copy('\n'.join(matches))
    print('列出所有邮箱:\n')
    print('\n'.join(matches))
else:
    print('没有找到所需邮箱!!!')

 

我们随便找一个网址:http://blog.sina.com.cn/s/blog_147f99d5d0102vmyv.html

进入网站后,ctrl+A全选,复制,然后运行程序

 

运行结果如下:

 

这样我们的任务就大功告成了

 

其实这个程序还有一些优化的地方,可以把邮件直接写入到文件中,还有就是可以直接从网页上进行爬取,不过我们这种方法也不限于网页,等我学习到后面再给大家进行分享吧,哈哈

 

喜欢本文的话,可以关注以下公众号,每天定时更新一篇python学习日记,让我们一起成长!

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值