##########################################################

小编提示:2.0新版已经发布 https://www.52by.com/article/34167

##########################################################

先对上节课中的一些问题做下集中回答:

世界上还没有一种方法可以有效的告诉我们提取出来的邮箱是有效的还是无效的,是采购商的还是供应商,或者是能明确告诉我们A/B两种状态中的一种,但这并不妨碍我们的目标,我们的目标是追求  “n个邮箱*概率=询盘” 这种状态,当概率固定的时候(通常可以认为是一个很小值),这时候提高n就变得很重要,这也是今天这课的核心。

有部分同学在执行pip的两条命令的时候会收到“该命令无效。。。”这种提示,这是因为某些区域的网络对这块做了限制,解决方法是看网盘里本ID上传的一篇补充文章“pip在命令提示窗口报错的解决方案”,照着做就可以了。

搞清楚google抓取和抓取google邮箱的区别,一个是使用google引擎抓取,和我们现在用bing是一样的,另一个是在现有的搜索引擎下抓取google的邮箱(也就是gmail),我们今天还是使用bing,理由大家都懂的,后面会专门开一个课教大家使用google抓取。

下面来上课,我们在第一节课中学会运行的那个脚本,如果我们稍微看一下代码,或从结果上分析,就会知道有几个局限性,第一个是她单次只能抓取一类邮箱,导致我们某个关键字对应的结果会很有限;第二个是一次只抓取50条数据(去掉不匹配的,实际返回的<50),这是因为没有处理翻页。今天本ID就带领大家一并解决掉这些问题,顺带多交大家一个衍生出来的问题,当返回结果有1000条的时候,就需要导出个文件了,否则粘贴复制就会麻烦死你。

【数组】

要解决以上的问题,我们要引入一个程序的概念“数组”,这个其实很好理解,数组就是一群具有相同性质的东西聚合体,比如之前我们用单引号括起来的那串字母 u'zklgr=d_okg' 就是表示这是一个字符串,字符串前面的u表示的这个字符串是unicode格式的,不知道什么是unicode吧,没关系,我们先背出来,字符串前面都需要固定写一个u的,这是固定格式,那么一组字符串怎么表示呢,答案是用 [ ] 括起来,下面是一个示例,表示我们想同时抓取 hotmail和yahoo的邮箱:

email = [u'zklgr=d_okg', u':rzkk_okg']

多个字符串之间用逗号隔开,你可以按照这个格式扩展你想得到的邮箱后缀,本ID只带你入门,但最后开干的事情是你自己搞定的,邮箱的后缀网上一搜一大把,把你想得到的都填上就好了,这个直接决定了你最后能搜到的邮箱数量,如果你连这步都懒得做,那么你直接来外贸邦买钻石会员好了。

【变量】

变量我们理解成一个标识,就像学校里的学号,这是学校对每一个学生的唯一标识,但这个标识在每一届对应的学生是不同的,比如2016界的007号对应的是王二麻子,但2004界的007号对应的可能是林志玲,对于学校来说,不变的是007学号,变得是007最终对应的那个,这个道理在程序里也是一样的。现在我们需要设定一个变量,这个变量是我们期望抓取的数量,现在我们就假定是1000好了,但到底这个最终能不能到1000,还需要取决于我们上面那个提供的数组你有没有好好补充完内容。

want = 1000

want就是个标识,和007一样,他现在的值等于1000,记住,数字是不需要加引号和u的,标识也是一样的,这里我们不需要太贪心,比如把这个值设置为10w+这种,因为这里有个坑,每个搜索引擎都会时刻监视我们的行为,当我们很频繁的去请求或去抓取的话,轻则需要人工输入验证码,重责被关一段时间(就是不让我们访问),这里面有个平衡点,我们需要不断尝试才能知道那个G点再哪里,本ID建议你一开始,先设个1000,然后数组那里呢也不要多,先加个2,3个左右,慢慢的再增多。

【输出文件结果】

当我们做了上面两步后,正常情况下按了F5就会看到源源不断的邮箱扑面而来,暗爽的时候也会给我们管理带来很多不便,如果能把结果都保存到一个文件里那该多好,没问题,满足你,看以下代码:

f = open(u'd:/52xg/_okg.csv', u'w')

已经能看懂一半了吧,看不懂把文章从头再看一遍,f是一个变量,u'd:/52xg/_okg.csv'是一个字符串,表示我们最后在D盘根目录下生成了一个 52xg/_okg.csv 的结果文件,有需要的修改自己想要的位置和文件名,但注意在PYTHON中路径是以 / 分开的,u'w'的意思是每一次生成这个文件都是覆盖之前老的已有的,如果我们想每一次新的结果都继续加在文件末端而不是覆盖,把这个参数改成 u'a'就可以了。还有,这里用了csv的格式,这是一种文本格式,可以用excel打开。

###################################################

以上就是今天第二节课要上的知识点,我们了解了数组是怎么回事,知道了变量这个东西,也知道写文件差不多是这个样子的,下次如果你公司有心仪的程序GGMM,记得用上面这些术语去套套近乎。本ID已经为你准备好了第二课的脚本了,虽然这个脚本能直接运行,但我真的很想让你知道点皮毛,最起码知道要修改哪几个地方吧,老规矩,下载网盘中的class_2.py,右键选"Edit With IDLE",看到的应该是下面这个界面:


看到熟悉的 email ,want,f 这三个变量了么(如果你刚才好好上课的话),改吧,骚年!当然你也可以直接按F5看看结果先,正常情况下,我们会看到又出来一个熟悉的界面,不停地跳着邮箱,这回可不像第一课的那个,要跳一会儿的,大概3,4分钟的样子吧,看到 >>> 这个提示符出来就表示结束了,看下图:


去D盘收获我们的劳动成果吧,如果你没有改 f 这个变量,那么52xg/_okg.csv这个文件已经躺在根目录下了,用excel打开看看,是不是幸福满满啊。


差不多了,本ID现在脑子里已经憋不出东西了,本来还想再说说怎么规避搜索引擎监控的机制的,但今天就先算了,大家执行脚本的时候小心点,不要一下子添加过多的邮箱后缀,也不要用太大的抓取值。

课件下载:https://www.52by.com/file_download/2826

第一课:2秒钟内获取50个邮箱:https://www.52by.com/article/1993

第三课:从google抓取邮箱:https://www.52by.com/article/1995

2019.6.6 更新:所有同学请去网盘下载新的脚本,运行的时候需要先在cmd里多安装一个库 "pip install fake_useragent" (引号不要输入

原文来自邦阅网 (52by.com) - www.52by.com/article/1994

声明:该文观点仅代表作者本人,邦阅网系信息发布平台,仅提供信息存储空间服务,若存在侵权问题,请及时联系邦阅网或作者进行删除。

评论
登录 后参与评论
发表你的高见
  • 邦友1649841120268

    换了新版本后,自己改代码,出现了很多问题,要学的好多

    2022-04-22
  • 邦友1649841120268

    我自己试着手打了一遍,还是很有成就感的,还是很感谢的,我就是做外贸业务的

    2022-04-22
  • 邦友1624417121817

    Traceback (most recent call last):
    File "C:\Users\win\Desktop\class_2.py", line 26, in <module>
    f = open(u'c:/52xg/_okg.csv', u'a')
    PermissionError: [Errno 13] Permission denied: 'c:/52xg/_okg.csv'
    我出现了这个问题

    2021-06-23
  • 邦友1624417121817

    我按了f5之后出现了这个,我该怎么办
    Traceback (most recent call last):
    File "C:\Users\win\Desktop\class_2.py", line 13, in <module>
    from fake_useragent import UserAgent
    ImportError: No module named fake_useragent

    2021-06-23
  • Alisa Amiela

    什么时候来个支持python3.8的

    2021-01-19
  • 小刘冲鸭

    您好,我顺利学会第一课了。可是第二课在我点击了run之后显示的是invalid synatx的确认按钮和Python 3.7.7 (tags/v3.7.7:d7c567b08f, Mar 10 2020, 09:44:33) [MSC v.1900 32 bit (Intel)] on win32
    Type "help", "copyright", "credits" or "license()" for more information.
    >>> 这样的页面,没有邮箱。

    2020-04-10
    邦号回复

    第二课的新版还没放出哦,你用的老课程是跑不起来的

    2020-04-13
  • 一叶知秋1567581949361

    Python 2.7.12 (v2.7.12:d33e0cf91556, Jun 27 2016, 15:19:22) [MSC v.1500 32 bit (Intel)] on win32Type "copyright", "credits" or "license()" for more information.>>> ============= RESTART: C:\Users\Administrator\Desktop\class_2.py =============Traceback (most recent call last): File "C:\Users\Administrator\Desktop\class_2.py", line 12, in <module> from bs4 import BeautifulSoupImportError: No module named bs4>>> 出来的是这个

    2019-09-04
    邦号回复

    没有安装BeautifulSoup库,看第一课

    2019-09-04
  • Oliver~小宇宙

    我一点都不改动执行以下,也是没有反应的,不知道是不是软件本身的问题啊

    2019-07-13
  • 邦友1559701361609

    我直接输出三个大于号求解

    2019-07-08
    邦号回复

    这么神奇?不过这是第二课,只是在第一课的基础上增加了本地文本输出,你第一课的输出结果是什么呢?

    2019-07-09
  • Titus999

    谢谢了,您真是跨界人才。。。。

    2018-06-29
  • 丨yoka丨

    只有一个C盘,该目录后,然后就没有然后了。。。
    =========== RESTART: C:\Users\yoka\Desktop\邮箱抓取工具\class_2.py ===========

    Traceback (most recent call last):
    File "C:\Users\yoka\Desktop\邮箱抓取工具\class_2.py", line 25, in <module>
    f = open(u' C:/52xg/_okg.csv', u'w')
    IOError: [Errno 22] invalid mode ('w') or filename: u' C:/52xg/_okg.csv'
    >>>

    2018-04-14
    邦号回复

    说明你没有C盘根目录的读写权限,可以修改成你的桌面目录,或者用管理员的权限来运行IDLE

    2018-04-16
  • 钱多多

    有没有批量验证邮箱的方法呢

    2018-04-09
    邦号回复

    没有的哦,这个就需要批量群发开发邮件了,后面你需要的就是用科学的辩证法,不,概率论来验证你的邮件模板的有效性,找个专业的邮件服务商,可以看到很多统计数据的,然后一步步优化自己的工作,这就是邮件开发的全部知识了~~~

    2018-04-10
  • 邦友1513820032758

    换了个新电脑, 之后再照着以前的办法重新装了一次, 但是发现之后搜索邮箱时一直sleep... sleep就结束, 搜索不到邮箱了, 怎么解决?

    2018-04-02
    邦号回复

    外部网络环境有发生变化吗?还是检查下新电脑有没有D盘?

    2018-04-10
  • Yuntian

    方法不错,谢过

    2017-10-27
  • 邦友1490751996926

    成功,感谢

    2017-10-03
服务介绍
雷劈下来的时候,你要在场。