1. 程式人生 > >Python爬蟲獲取貼吧中的郵箱

Python爬蟲獲取貼吧中的郵箱

最近公司正在談的專案需要用到爬蟲,和經理交流後,經理建議我用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._][email protected][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還是非常厲害的。