㊙️【教你用python挣零花钱】自动化简历内推,学弟直呼牛逼!!
最近,小編在處理簡歷時,發現大量簡歷需要一個個打開文件,復制姓名、郵箱、電話號碼、學歷等關鍵信息,效率特別低且部分文件無法直接復制。于是,小編便寫了簡歷解析處理的腳本,支持文件格式有:doc,docx,pdf。
ps. 上月戰績,內推400+人,內推成功8人,入職5人,收入8000*2 + 5000*3=31000 元。
{'感謝您的投遞': 331, '簡歷處理中': 19, '簡歷初篩': 5, '本輪通過': 6,?'Offer已發放': 1, '進行中': 2, '拒絕Offer': 3, '接受Offer': 5}?
?
一 準備工作
腳本功能:分析簡歷文本,一鍵內推
輸入:要解析的文件路徑
輸出:解析的內容,包括不限于姓名、郵箱、電話號碼、學歷等信息。
環境準備:python 3.6 、mac(下文中doc轉docx是mac寫法,windows更簡單,導入win32的包即可)
需要導入的包
# encoding: utf-8 import os, sys import docx from pdfminer.pdfparser import PDFParser from pdfminer.pdfdocument import PDFDocument from pdfminer.pdfpage import PDFPage from pdfminer.pdfinterp import PDFResourceManager from pdfminer.pdfinterp import PDFPageInterpreter from pdfminer.layout import LAParams from pdfminer.converter import PDFPageAggregator二 開始解析
2.1 獲取簡歷文件
def get_files(path):res = []for i in os.listdir(path):# 去掉臨時文件if os.path.isfile(path+i) and '~$' not in i and '.DS' not in i:# 去重 1.doc 和 1.docxif (path+i).split(".")[0] not in str(res):res.append(path+i)return res2.2 解析PDF
得到res文本后,可以通過正則,匹配出郵箱,手機號,學歷等
def pdf_reader(file):fp = open(file, "rb")# 創建一個與文檔相關聯的解釋器parser = PDFParser(fp)# PDF文檔對象doc = PDFDocument(parser)# 鏈接解釋器和文檔對象parser.set_document(doc)# doc.set_paeser(parser)# 初始化文檔# doc.initialize("")# 創建PDF資源管理器resource = PDFResourceManager()# 參數分析器laparam = LAParams()# 創建一個聚合器device = PDFPageAggregator(resource, laparams=laparam)# 創建PDF頁面解釋器interpreter = PDFPageInterpreter(resource, device)# 使用文檔對象得到頁面集合res = ''for page in PDFPage.create_pages(doc):# 使用頁面解釋器來讀取interpreter.process_page(page)# 使用聚合器來獲取內容layout = device.get_result()for out in layout:if hasattr(out, "get_text"):res = res + '' + out.get_text()return res2.3 解析word
? ? ? ? 待優化情況:word中如果包含execl,無法解析。
def word_reader(file):try:# docx 直接讀if 'docx' in file:res = ''f = docx.Document(file)for para in f.paragraphs:res = res + '\n' +para.textelse:# 先轉格式doc>docxos.system("textutil -convert docx '%s'"%file)word_reader(file+'x')res = ''f = docx.Document(file+'x')for para in f.paragraphs:res = res + '\n' +para.textreturn resexcept:# print(file, 'read failed')return ''2.4 完整代碼
# encoding: utf-8 import os, sys import docx from pdfminer.pdfparser import PDFParser from pdfminer.pdfdocument import PDFDocument from pdfminer.pdfpage import PDFPage from pdfminer.pdfinterp import PDFResourceManager from pdfminer.pdfinterp import PDFPageInterpreter from pdfminer.layout import LAParams from pdfminer.converter import PDFPageAggregatordef get_files(path):res = []for i in os.listdir(path):# 去掉臨時文件if os.path.isfile(path+i) and '~$' not in i and '.DS' not in i:# 去重 1.doc 和 1.docxif (path+i).split(".")[0] not in str(res):res.append(path+i)return resdef pdf_reader(file):fp = open(file, "rb")# 創建一個與文檔相關聯的解釋器parser = PDFParser(fp)# PDF文檔對象doc = PDFDocument(parser)# 鏈接解釋器和文檔對象parser.set_document(doc)# doc.set_paeser(parser)# 初始化文檔# doc.initialize("")# 創建PDF資源管理器resource = PDFResourceManager()# 參數分析器laparam = LAParams()# 創建一個聚合器device = PDFPageAggregator(resource, laparams=laparam)# 創建PDF頁面解釋器interpreter = PDFPageInterpreter(resource, device)# 使用文檔對象得到頁面集合res = ''for page in PDFPage.create_pages(doc):# 使用頁面解釋器來讀取interpreter.process_page(page)# 使用聚合器來獲取內容layout = device.get_result()for out in layout:if hasattr(out, "get_text"):res = res + '' + out.get_text()return resdef word_reader(file):try:# docx 直接讀if 'docx' in file:res = ''f = docx.Document(file)for para in f.paragraphs:res = res + '\n' +para.textelse:# 先轉格式doc>docxos.system("textutil -convert docx '%s'"%file)word_reader(file+'x')res = ''f = docx.Document(file+'x')for para in f.paragraphs:res = res + '\n' +para.textreturn resexcept:# print(file, 'read failed')return ''def file_reader(file):if 'doc' in file:res = word_reader(file)elif 'pdf' in file:res = pdf_reader(file)else:res = '不是doc,也不是pdf,文件格式不支持!'return resif __name__ == '__main__':path = "/Users/XXXXX/Mine/XXXXX/"abs_files = get_files(path)print(abs_files)for file in abs_files:file_text = file_reader(file)print(file_text)三 效果展示
姓名? 工齡? 電話? 學歷背景? 公司背景? 關鍵標簽? 郵箱
??
本期實現:任何格式的簡歷,解析成文本,便于后續篩選優質簡歷。
下期揭曉:簡歷分析,推送到最適合的崗位,包括學歷背景,穩定性,公司背景,擅長技術組件等。
?
我是橋哥,專注分享互聯網黑科技,點贊、收藏不迷路?!!!
?
總結
以上是生活随笔為你收集整理的㊙️【教你用python挣零花钱】自动化简历内推,学弟直呼牛逼!!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 刚入职场的菜鸟,这些大数据知识点,你必须
- 下一篇: React Native官方DEMO