最近公司正在谈的项目需要用到爬虫,和经理交流后,经理建议我用Python实现。昨天看了会儿Python基本语法后,在电脑上安装了Python 3.7以及编译器PyCharm。今天参考了网上的代码后,根据网上的代码小做修改,实现了之前用Java写的爬取贴吧帖子中的邮箱。以下为代码:
import requests
import datetime
import re
def get_email(url):
content = requests.get(url).text
pattern = r'[0-9a-zA-Z._]+@[0-9a-zA-Z._]+\.[0-9a-zA-Z._]+' #正则表达式判断邮箱
p = re.compile(pattern)
m = p.findall(content)
email = list(set(m)) #去掉重复邮箱
count = 0 #邮箱计数
for mm in email:
count = count+1
print(mm)
return count
n = 1 # 页数
amount = 0 # 邮箱计数
start_time = datetime.datetime.now() # 开始时间
while n <= 10:
amount = amount + get_email('https://tieba.baidu.com/p/3349997454?pn=' + str(n))
n = n + 1
end_time = datetime.datetime.now() # 结束时间
print('获取了' + str(amount) + '个邮箱')
print(str((end_time - start_time).seconds) + '秒')
其中requests包需要自行安装导入,百度一下就可以了,这里不做赘述。效果如图:
可以看到,这里耗时和使用单线程的Java爬虫的耗时是差不多的,但Python的代码显然比Java少了几十行,所以Python还是非常厉害的。