1. 文章背景描述:

近期公司有员工离职了,技术岗位的。

让HR招人,招聘进度也太慢了,实在等不及,就撸起袖子自己上。(之前从来没招聘过)

自己在某招聘网站注册后,花了若干人民币,短时间收到大量求职者的简历;

(干嘛交钱,因为不交钱一天也收不到几封简历,想主动撩人都受次数限制。)

(有钱就是好!)[手动无奈的表情]

由于需招聘的岗位稍特殊,且对学历要求比较严格,所以在筛选大量简历的时候耗费了我大量的时间。

以上就是我面临的难题,我需要一个称心的工具,来帮我将这些简历文件中的主要信息整理成Excel表格,这样进一步做简历筛选工作量就轻松了好多了,甚至需要给应聘者打电话时也不用看着简历手动输号码了。

好的,有了主意就行,好久没写python代码了,这次就拿python练练手。

以上就是背景。

2.问题分析

简历文件都有哪些格式?

word :*.docx、*.doc

PDF:*.pdf

图片:*.png、*.jpg (好过分,竟然用图片^_^)

Excel: *.xls 、 *.xlsx

网页形式:html等

由于pdf和word所占比例较高,那就先搞定word和PDF文件

2.1. 对于word文件:

去搜索引擎查了下,有个现成的库可以用:python-docx

python-docx搜索示例

安装python-docx 库:

pip install python-docx --target="C:Program FilesPython37Libsite-packages" -i https://pypi.tuna.tsinghua.edu.cn/simple

我这里使用的是清华的镜像源,指定了安装路径;

大家可以使用 pip install python-docx 来安装 python-docx库

导入python-docx库:

import 

简历示例

先写一段代码测试下:

import docx
import osprint(os.getcwd())
file_docx = docx.Document(r"C:UsersAdministratorDesktopread_docx张三-求职机器学习岗位-18888888888.docx")
# file_docx = docx.Document(r"C:UsersAdministratorDesktopread_docx数据分析.docx")
tables = file_docx.tables
print(file_docx)
print("tables len:", len(tables))print("对象类型:", type(file_docx))
print("文件长度:", len(file_docx.paragraphs))
print(file_docx.paragraphs[0].text)
# C:UsersAdministratorDesktopread_docx数据分析.docx# print("="*20)
print(tables)
for _table in tables[:]:for i, row in enumerate(_table.rows[:]):row_content = []for cell in row.cells[:]:c = cell.textrow_content.append(c)print(row_content)

输出结果:

<docx.document.Document object at 0x00000273208E9D68>
tables len: 2
对象类型: <class 'docx.document.Document'>
文件长度: 7
个人简历
====================
[<docx.table.Table object at 0x00000273208E0C48>, <docx.table.Table object at 0x0000027320902C48>]
['姓名', '张三', '性别', '男']
['年龄', '23', '学历', '本科']
['电话', '188 8888 8888', '邮箱', '188 8888 8888@163.com']
['清华大学', '人工智能专业', '本科', '1999.09.01-2003.07.01']
['北京大学', '人工智能专业', '硕士', '2003.09.01-2007.07.01']

嗯,确定表格内的数据能提取并输出就行了;

由于现在大多数人的简历word版都是使用文本框录入数据的,并不直接使用表格,上述的代码仅限于表格,那么我们再:

import docx
import osprint("=" * 40)
file = docx.Document(r"C:UsersAdministratorDesktopread_docx赵思思--求职机器学习岗位-19999999999.docx")
children = file.element.body.iter()
child_iters = []
tags = []
for child in children:# 通过类型判断目录if child.tag.endswith(('AlternateContent', 'textbox')):for ci in child.iter():tags.append(ci.tag)if ci.tag.endswith(('main}r', 'main}pPr')):child_iters.append(ci)
text = ['']
for ci in child_iters:if ci.tag.endswith('main}pPr'):text.append('')else:text[-1] += ci.textci.text = ''
trans_text = ['***' + t + '***' for t in text]
print(trans_text)i, k = 0, 0
for ci in child_iters:if ci.tag.endswith('main}pPr'):i += 1k = 0elif k == 0:ci.text = trans_text[i]k = 1file.save(r'C:UsersAdministratorDesktopread_docx/new_test.docx')

接下来,就是将抽取到的数据进行精确提取了。

+++2020年5月21日+++

未完待更

+++

资料参考:

1、使用python-docx提取word中的表格 - 六盘水月照 - 博客园

2、https://python-docx.readthedocs.io/en/latest/user/quickstart.html

3、https://blog.csdn.net/u013546508/article/details/98849695

python docx 合并文档 图片_使用python抓取大量简历文档内数据(word:docx;pdf;图片等)输出表格文件...相关推荐

  1. python爬虫抓收费图片_简单的抓取淘宝图片的Python爬虫

    写了一个抓taobao图片的爬虫,全是用if,for,while写的,比较简陋,入门作品. 从网页http://mm.taobao.com/json/request_top_list.htm?type ...

  2. python获取渲染之后的网页_使用Pyppeteer抓取渲染网页

    Pyppeteer是Puppeteer的非官方Python支持,Puppeteer是一个无头JavaScript的基于Chrome/Chromium浏览器自动化库,可以用于对渲染网页的抓取. 比较了P ...

  3. python获取app信息的库_基于python3抓取pinpoint应用信息入库

    这篇文章主要介绍了基于python3抓取pinpoint应用信息入库,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Pinpoint是用Java编写 ...

  4. python字典合并输入用字符_左右用R右手Python9——字符串合并与拆分

    原标题:左右用R右手Python9--字符串合并与拆分 杜雨,EasyCharts团队成员,R语言中文社区专栏作者,兴趣方向为:Excel商务图表,R语言数据可视化,地理信息数据可视化.个人公众号:数 ...

  5. python百度贴吧怎么爬取最早的帖子_【Python爬虫教学】百度篇·手把手教你抓取百度贴吧任意贴吧指定范围页数内的源代码...

    开门见山. 懒癌一犯,能拖一天是一天. 好了,亲爱的小伙伴们,我又回来了!今天带来的是抓取输入的任意贴吧,抓取指定范围页数内的源代码. 工具: 依旧是 PyCharm 和 Google 浏览器,pyt ...

  6. python新闻评论分析_使用 python 抓取并分析京东商品评论数据

    本篇文章是python爬虫系列的第三篇,介绍如何抓取京东商城商品评论信息,并对这些评论信息进行分析和可视化.下面是要抓取的商品信息,一款女士文胸.这个商品共有红色,黑色和肤色三种颜色, 70B到90D ...

  7. python爬取饿了么数据_阿里95亿美元拿下饿了么,我用python抓取了饿了么外卖数据信息...

    今天收到一个消息,阿里95亿美元拿下饿了么.阿里巴巴已经签订收购协议,联合蚂蚁金服用95亿美元兑饿了么全资收购.现在我用Python抓取饿了么的外卖数据. ■1.环境介绍: win10 64bit p ...

  8. python抓取数据包_利用python-pypcap抓取带VLAN标签的数据包方法

    1.背景介绍 在采用通常的socket抓包方式下,操作系统会自动将收到包的VLAN信息剥离,导致上层应用收到的包不会含有VLAN标签信息.而libpcap虽然是基于socket实现抓包,但在收到数据包 ...

  9. java爬取今日头条_今日头条抓取街拍图片数据集

    spider1: 抓取街拍页面的所有入口链接: 1.数据查看到,街拍页面需要的数据集都在data这个集合中,而data是整个数据集字典的一个键,data这个键又包括了一个list,list中是一个个字 ...

最新文章

  1. umijs多环境配置_umi 项目多环境打包配置
  2. 清华硕士在家造了一辆车,从设计到加工一个人完成,轻松穿沙漠爬岩石,还人人可拆装...
  3. 【数值分析】微分求积:复化梯形、复化辛浦生
  4. Linux Shell编程之一循环结构
  5. 笔试算法复习——数组去重
  6. 分数转小数C语言,这是把小数转换成分数的程序,可是输入0.6666无限循环
  7. 【小虫虫】邮购笔记本的注意事项
  8. 微信公众平台-杂项:小程序导航
  9. 【华为云技术分享】40%性能提升,华为云推出PostgreSQL 12 商用版
  10. 2016CCPC东北地区大学生程序设计竞赛题解
  11. wireshark_Couldn’t run /usr/sbin/dumpcap in child process: Permission denied
  12. ZAB协议(ZooKeeper Atomic Broadcast)入门
  13. 理解Python的协程机制-Yield
  14. java中打印当前时间_在java中打印当前日期
  15. lamp php用开吗,LAMP环境之PHP安装使用
  16. 路在脚下,梦就在前方
  17. 微软收购雅虎要中国政府审批?
  18. 超级计算机通信工程研发相关高校,美国签证技巧
  19. JAVA是解释型语言还是编译型语言
  20. 我的世界1.14java原版命令_我的世界1.14.4第一个预览版发布 添加了debugreport命令...

热门文章

  1. 常微分方程的初始条件使用
  2. 人生需要积极勇敢的去面对
  3. Uva220 Othello
  4. android 系统框架 dx
  5. Silverlight3 加载其他xap
  6. 博客开园了~~~~~~
  7. netstat命令---Linux查看网络和socket信息
  8. 数据结构与算法总结(八股文)
  9. tensorflow之安装opencv
  10. LED显示驱动(八):显示驱动调试问题