公司的一個項目,首先須要過濾一下郵件
郵件的主要內容就是應聘信息
固然會產生不少的垃圾郵件,好比智聯招聘發的廣告、獵頭郵件和網易廣告等
這裏首先要過濾一下郵件,把沒有用處的垃圾郵件過濾掉python
本着先易後難的原則,首先使用簡單的過濾方法
簡單的說就是根據標題中的關鍵詞,發件人郵箱來過濾郵件
這樣的過濾方法其實過濾的準確性仍是挺高的編碼
固然啦,準確率和召回率可能仍是要差一點的調試
通過初步過濾以後,接下來要作的就是信息的抽取code
這個東西難度較大,
抽取的東西有地址、人名、公司名、職位、聯繫方式等
機器識別畢竟沒法達到人類的高度對象
本次開發中主要使用python來作,這裏寫一下python項目須要注意的問題開發
一、不要濫用try ... except .....字符串
感受這個問題很嚴重,若是濫用,並且還沒處理好的話,出了問題根 本就沒法調試,返回錯誤若是不對的話根本就沒法追蹤
二、要注意編碼問題get
在使用python處理中文的時候,編碼問題是格外重要,不過python的 編碼仍是比較簡單,我遇到的有gbk、gb18030、gb23十二、utf8這幾 種使用的時候統一轉爲utf8比較方便
三、時間的處理email
這個仍是比較麻煩的,郵件中的時間都是字符串類型,關鍵是要知道 怎麼去轉化,例如: Wed, 2 Mar 2016 14:31:24 +0800 (CST) 這裏面的Wed, 2 Mar 2016 14:31:24部分,能夠經過如下方式來作 time.strptime('Wed, 2 Mar 2016 14:31:24', '%a,%d %b %Y %H:%M:%S') 這樣也能生成一個time的對象 缺點就是須要截取一部分,並且不知道時間格式是否會變化,若是變化的話那也是要出問題的 這裏面email模塊提供了一個解析的方法 from email import utils utils.mktime_tz(utils.parsedate_tz(timestr)) 這樣返回的是時間戳,而後再用 time.localtime(stamptime) 就能夠返回正常的時間格式了 其實email的utils方法提供了不少的解析郵件的方法,好比: utils.parseaddr()就能夠把msg.get('From')裏面的內容解析成郵箱