首先要将pdf中表格数据提取,是比较难以写的,于是想到可以将pdf转成html,再用python中htmlparser爬取html文本中的数据,这其中的方法相对而言较为简单。
首先是使用pdf2htmlEX,下载好后压缩文件解压后,可看到其中有pdf2htmlEX.exe文件,在命令行中输入pdf2htmlEX.exe可看到其后面可以添加的各种参数以及用法,我们输入pdf2htmlEX -f 2 example.pdf example.html,可将example.pdf从第二页开始到最后一页转为example.html文件。
接着上python代码,利用全局变量,控制数据的爬取,因为我要爬取的是表格数据,所以只需要一个学校名字,以及两个数字,一个百分数。
from html.parser import HTMLParser
import string
htmlFile = open(r'D:\pdf2htmlEX-win32-0.14.6-upx-with-poppler-data\2013_table_wrapperqingnian.html','r',encoding='UTF-8')
content = htmlFile.read()
lists = [
'安徽中医药大学', '北京中医药大学', '辽宁中医药大学', '长春中医药大学', '黑龙江中医药大学', '天津中医药大学',
'南京中医药大学', '上海中医药大学', '山东中医药大学', '山西中医学院', '浙江中医药大学', '江西中医药大学',
'福建中医药大学', '湖南中医药大学', '湖北中医药大学', '广州中医药大学', '广西中医药大学', '贵阳中医学院',
'成都中医药大学', '云南中医学院', '陕西中医学院', '河南中医学院', '甘肃中医学院','河北中医学院'
]
# 云南中医学院,甘肃中医学院,河北中医学院
global flag,count,strschool,listschool
flag = False
count = 0
strschool = ''
listschool = [