我经常收到关于email爬虫的问题。有迹象表明那些想从网页上抓取联系方式的人对这个问题很感兴趣。在这篇文章里,我想演示一下如何使用python实现一个简单的邮箱爬虫。这个爬虫很简单,但从这个例子中你可以学到许多东西(尤其是当你想做一个新虫的时候)。
我特意简化了代码,尽可能的把主要思路表达清楚。这样你就可以在需要的时候加上自己的功能。虽然很简单,但完整的实现从网上抓取email地址的功能。注意,本文的代码是使用python3写的。
好。让我们逐步深入吧。我一点一点的实现,并加上注释。最后再把完整的代码贴出来。
BeaufulSoup可以使检索Html文档更简便,Requests让执行web请求更容易。
from bs4 importBeautifulSoupimportrequestsimportrequests.exceptionsfrom urllib.parse importurlsplitfrom collections importdequeimport re
下面我定义了一个列表,用于存放要抓取的网页地址,比如http://www.huazeming.com/ ,当然你也可以找有明显email地址的网页作为地址,数量不限。虽然这个集合应该是个列表(在python中),但我选择了 deque 这个类型,因为这个更符合我们的需要。
#a queue of urls to be crawled
new_urls = deque(['http://www.themoscowtimes.com/contact_us/'])
接下来,我们需要把处理过的url存起来,以避免重复处理。我选择set类型,因为这个集合可以保证元素值不重复。
#a set of urls that we have already crawled<