博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【python实战系列】python实现邮件收集(一)
阅读量:2055 次
发布时间:2019-04-28

本文共 1111 字,大约阅读时间需要 3 分钟。

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

但如果网站或文献上的数据杂乱又繁多,收集起来极其有难度。这时,我们可以使用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 pypercliptext = 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学习日记,让我们一起成长!

 

 

转载地址:http://fanlf.baihongyu.com/

你可能感兴趣的文章
第一次kaggle比赛 回顾篇
查看>>
leetcode 50. Pow(x, n)
查看>>
leetcode 130. Surrounded Regions
查看>>
【托业】【全真题库】TEST2-语法题
查看>>
博客文格式优化
查看>>
【托业】【新托业全真模拟】疑难语法题知识点总结(01~05)
查看>>
【SQL】group by 和order by 的区别。
查看>>
【F12】谷歌浏览器--前台效果可以在不访问服务器的前提下直接改样式看效果是否是预期值。...
查看>>
【Python】详解Python多线程Selenium跨浏览器测试
查看>>
Jmeter之参数化
查看>>
Shell 和Python的区别。
查看>>
Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结
查看>>
Loadrunner之https协议录制回放报错如何解决?(九)
查看>>
python中xrange和range的异同
查看>>
列表、元组、集合、字典
查看>>
【Python】easygui小甲鱼
查看>>
【Python】关于Python多线程的一篇文章转载
查看>>
【Pyton】【小甲鱼】文件
查看>>
【Pyton】【小甲鱼】永久存储:腌制一缸美味的泡菜
查看>>
【Pyton】【小甲鱼】异常处理:你不可能总是对的
查看>>