python 读取pdf cid_记一次为解决Python读取PDF文件的Shell操作
一、背景
本想将 PDF 文件转换为 Word 文档,然后网上搜索了一下发现有挺多转换的软件。有的是免费的、收费,咱也不知哪个好使,还得一个个安装试用。先不说能不解决问题,就这安装试用想想就脑壳疼。便想起了"Python 大法",随即搜了几篇看起来比较完整的博客,二话不说粘贴复制,改改运行试试。使用环境(python3.6+pdfminer3k),代码这里就不放出来了。
二、问题
运气不好,这一试就报错WARNING:root:GBK-EUC-H,然后又搜了一下有同样的报错问题,但是这篇博客没啥大用,仅仅是知道缺了相关的字体文件,通过其中的链接顺藤摸瓜找到了 github 上的字体文件列表页
https://github.com/euske/pdfminer/tree/f1d5d681b6d2ab0ddeaea925ba784ebb94f6d509/pdfminer/cmap
三、解决
下载了报错的对应文件 GBK-EUC-H.pickle.gz,然后将其文件解压把放置 Python 的安装目录下 Lib\site-packages\pdfminer\cmap 路径中,再次运行又报错 "pdfminer.converter:undefined: , 3027". 想想等下有报错还得下,索性全部下下来。
四、一顿分析及 Shell 操作
1.先网页 F12 打开控制台分析 Element 元素,Xpath 信息 "//td[@class=‘content‘]/span/a/@href"
2.使用 curl 命令获取响应并处理 (通过"检查网页源码"发现 span 标签和 a 标签同行)
先确认是否与步骤 1 中的数量一致
# 通过获取父标签信息的之后的行
curl -s https://github.com/euske/pdfminer/tree/f1d5d681b6d2ab0ddeaea925ba784ebb94f6d509/pdfminer/cmap | grep -A1 '
' |grep "
# 直接正则匹配到行
curl -s https://github.com/euske/pdfminer/tree/f1d5d681b6d2ab0ddeaea925ba784ebb94f6d509/pdfminer/cmap | grep -E '\s+
确认一致,则进行下一步数据清理,进而获得所有字体文件列表
curl -s https://github.com/euske/pdfminer/tree/f1d5d681b6d2ab0ddeaea925ba784ebb94f6d509/pdfminer/cmap | grep -E '\s+
3.进入某个文件详情页,分析下载请求地址
将下面链接放入地址栏,会进入文件下载操作,所以这就是文件的真实下载地址
5.开始命令行构造下载地址
curl -s https://github.com/euske/pdfminer/tree/f1d5d681b6d2ab0ddeaea925ba784ebb94f6d509/pdfminer/cmap |grep -E '\s+
6.升级-->构造及文件下载脚本
# !/usr/bin/bash
# 参数校验
folder=$1
# 参数为空判断
[ -z $folder ] && folder="downfiles"
# 为文件且存在判断,不能重名
if [ -f $folder ]
then
echo "Error: 【$folder】 already exist! and it's file"
exit
fi
# 不存在则创建
if [ ! -e $folder ]
then
mkdir $folder
fi
echo ""
echo "文件保存路径为: $PWD/$folder"
echo ""
# github 主页列表显示地址
listPage="https://github.com/euske/pdfminer/tree/f1d5d681b6d2ab0ddeaea925ba784ebb94f6d509/pdfminer/cmap"
# github 详情显示地址
# https://github.com/euske/pdfminer/blob/f1d5d681b6d2ab0ddeaea925ba784ebb94f6d509/pdfminer/cmap/
# github 下载按钮地址
# https://github.com/euske/pdfminer/raw/f1d5d681b6d2ab0ddeaea925ba784ebb94f6d509/pdfminer/cmap/
# 真实下载地址
base="https://raw.githubusercontent.com/euske/pdfminer/f1d5d681b6d2ab0ddeaea925ba784ebb94f6d509/pdfminer/cmap/"
# 模拟浏览器
userAgent="Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36"
files=`curl -s -A "${userAgent}" $listPage | grep -E '\s+
if [ -z "$files" ]
then
echo "获取列表信息失败!!!"
exit
else
num=`echo $files| awk 'BEGIN{RS=" "}END{print NR}'`
echo "成功获取列表信息, 总共 $num"
fi
echo ""
for name in $files
do
# infos="curl -s -A \"${userAgent}\" -w %{http_code} \"$base$name\" -o $folder/$name"
sleep 1
res=`curl -s -A "${userAgent}" -w %{http_code} "$base$name" -o $folder/$name`
if [ "$res" = "200" ]
then
echo "SUCCESS: 【$name】 下载成功"
else
# echo $infos
echo "ERROR: 【$name】 下载失败--$res"
sleep 0.5
fi
done
五、后续
文件下载出现
python 读取pdf cid_记一次为解决Python读取PDF文件的Shell操作相关推荐
- python中plot不能显示标签_python 2: 解决python中的plot函数的图例legend不能显示中文问题...
问题: 图像标题.横纵坐标轴的标签都能显示中文名字,但是图例就是不能显示中文,怎么解决呢? 解决: plt.figure() plt.title(u'训练性能', fontproperties=fon ...
- python画图显示不了中文_完美解决Python matplotlib绘图时汉字显示不正常的问题
Matplotlib是一个很好的作图软件,但是python下默认不支持中文,所以需要做一些修改,方法如下: 1.在python安装目录的Lib目录下创建ch.py文件. 文件中代码为: 保存,以后通过 ...
- python whl安装 缺少dll 查看具_解决Python安装时报缺少DLL问题【两种解决方法】
准备开始学习Python,但是刚准备环境搭建时就遇到了下面的错误: 仔细的看了看,说是缺少DLL. 对于这个问题的解决办法: 方法一: 1. 在安装包上点右键以管理员身份运行 2. C:\Users\ ...
- python进度条 装饰器_2种方式解决Python执行卡顿问题
简介 Flask 是 Python 中有名的轻量级同步 web 框架,在一些开发中,可能会遇到需要长时间处理的任务,此时就需要使用异步的方式来实现,让长时间任务在后台运行,先将本次请求的响应状态返回给 ...
- python封装成exe后运行失败_解决Python使用pyinstaller打包生成exe运行提示错误 | kTWO-个人博客...
最近用python写了个小的桌面程序,在本机上调试的时候,一点问题都没有,在生成exe后也可以正常打开,但是我发给舍友用的时候却突然出现的错误,运行后提示Failed to execute scrip ...
- python中的ssl模块不能用_解决Python找不到ssl模块问题 No module named _ssl的方法
python安装完毕后,提示找不到ssl模块: [www@pythontab.com ~]$ python Python 2.7.15 (default, Oct 23 2018, 18:08:43) ...
- python读取只读word只读_人生苦短我学Python——Word处理之快速Word转PDF
上回书说到Python对于Excel的操作,本回书咱们来说一说Python对于Word的操作.这次的需求是这样的:把若干个Word文档转换为PDF格式.起因呢,是因为公司经常会披露公告.法律文件等,这 ...
- itext7读取pdf 中文_实例6:用Python给PDF批量加密
每个人都有秘密,每个公司也是.我们的很多文件不想给某些人看到,那就可以利用PDF的加密功能设置密码.如果我们生成了很多PDF,一个一个地加密,将费时费力.这种重复的繁重的事儿交给Python,它会不辱 ...
- python自动化办公——定制化将电子签名批量签写到PDF文件
python自动化办公--定制化将电子签名批量签写到PDF文件 文章目录 python自动化办公--定制化将电子签名批量签写到PDF文件 1.安装依赖 2.需求分析 3.代码 1.安装依赖 首先需要下 ...
最新文章
- C++中const用法总结(转)
- oracel Pipelined pipe row的用法
- 电池和Adapter切换电路改进实验(转)
- 中科院开发者公开道歉:将木兰编程语言夸大为“完全自主开发”
- Spring -- 入门,装备集合,自动装配,分散装配,自定义编辑器
- scheduled 每月最后一天_单周、双周、每月?哪种定投方式收益最高?
- java 嵌入式 类型工具库_你常用的Java工具库都有哪些?
- 客户说发货慢怎么回复_买家投诉卖家物流送货慢怎么处理
- word写论文公式编号问题
- 什么叫单模光纤_单模光纤是什么?单模光纤有哪些分类?
- 执行脚本错误:-bash: ./start.sh: /bin/bash^M: bad interpreter: No such file or directory
- ipv6解析地理位置
- 管理服务之间的依赖关系
- 【NLP CS224N笔记】Lecture 12 - Information from parts of words Subword Models
- 正则表达式匹配英文和法文
- 几道加油站加油相关问题:最小加油次数、能否回到起点
- 购买服务器 操作系统选什么区别吗,购买服务器选择什么操作系统
- 究竟什么时候需要用RTOS?
- [saiku]saiku3.8项目搭建步骤
- 文本相似度bm25算法的原理以及Python实现(jupyter notebook)