一、背景

本想将 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操作相关推荐

  1. python中plot不能显示标签_python 2: 解决python中的plot函数的图例legend不能显示中文问题...

    问题: 图像标题.横纵坐标轴的标签都能显示中文名字,但是图例就是不能显示中文,怎么解决呢? 解决: plt.figure() plt.title(u'训练性能', fontproperties=fon ...

  2. python画图显示不了中文_完美解决Python matplotlib绘图时汉字显示不正常的问题

    Matplotlib是一个很好的作图软件,但是python下默认不支持中文,所以需要做一些修改,方法如下: 1.在python安装目录的Lib目录下创建ch.py文件. 文件中代码为: 保存,以后通过 ...

  3. python whl安装 缺少dll 查看具_解决Python安装时报缺少DLL问题【两种解决方法】

    准备开始学习Python,但是刚准备环境搭建时就遇到了下面的错误: 仔细的看了看,说是缺少DLL. 对于这个问题的解决办法: 方法一: 1. 在安装包上点右键以管理员身份运行 2. C:\Users\ ...

  4. python进度条 装饰器_2种方式解决Python执行卡顿问题

    简介 Flask 是 Python 中有名的轻量级同步 web 框架,在一些开发中,可能会遇到需要长时间处理的任务,此时就需要使用异步的方式来实现,让长时间任务在后台运行,先将本次请求的响应状态返回给 ...

  5. python封装成exe后运行失败_解决Python使用pyinstaller打包生成exe运行提示错误 | kTWO-个人博客...

    最近用python写了个小的桌面程序,在本机上调试的时候,一点问题都没有,在生成exe后也可以正常打开,但是我发给舍友用的时候却突然出现的错误,运行后提示Failed to execute scrip ...

  6. 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) ...

  7. python读取只读word只读_人生苦短我学Python——Word处理之快速Word转PDF

    上回书说到Python对于Excel的操作,本回书咱们来说一说Python对于Word的操作.这次的需求是这样的:把若干个Word文档转换为PDF格式.起因呢,是因为公司经常会披露公告.法律文件等,这 ...

  8. itext7读取pdf 中文_实例6:用Python给PDF批量加密

    每个人都有秘密,每个公司也是.我们的很多文件不想给某些人看到,那就可以利用PDF的加密功能设置密码.如果我们生成了很多PDF,一个一个地加密,将费时费力.这种重复的繁重的事儿交给Python,它会不辱 ...

  9. python自动化办公——定制化将电子签名批量签写到PDF文件

    python自动化办公--定制化将电子签名批量签写到PDF文件 文章目录 python自动化办公--定制化将电子签名批量签写到PDF文件 1.安装依赖 2.需求分析 3.代码 1.安装依赖 首先需要下 ...

最新文章

  1. C++中const用法总结(转)
  2. oracel Pipelined pipe row的用法
  3. 电池和Adapter切换电路改进实验(转)
  4. 中科院开发者公开道歉:将木兰编程语言夸大为“完全自主开发”
  5. Spring -- 入门,装备集合,自动装配,分散装配,自定义编辑器
  6. scheduled 每月最后一天_单周、双周、每月?哪种定投方式收益最高?
  7. java 嵌入式 类型工具库_你常用的Java工具库都有哪些?
  8. 客户说发货慢怎么回复_买家投诉卖家物流送货慢怎么处理
  9. word写论文公式编号问题
  10. 什么叫单模光纤_单模光纤是什么?单模光纤有哪些分类?
  11. 执行脚本错误:-bash: ./start.sh: /bin/bash^M: bad interpreter: No such file or directory
  12. ipv6解析地理位置
  13. 管理服务之间的依赖关系
  14. 【NLP CS224N笔记】Lecture 12 - Information from parts of words Subword Models
  15. 正则表达式匹配英文和法文
  16. 几道加油站加油相关问题:最小加油次数、能否回到起点
  17. 购买服务器 操作系统选什么区别吗,购买服务器选择什么操作系统
  18. 究竟什么时候需要用RTOS?
  19. [saiku]saiku3.8项目搭建步骤
  20. 文本相似度bm25算法的原理以及Python实现(jupyter notebook)

热门文章

  1. 使用latex投稿时,tex文件不能生成pdf查看的问题解决方案
  2. 【剑指offer 33】丑数
  3. 网络变压器 网络变压器基本线路及其设计目的和侧重点
  4. 第十四届蓝桥杯三月真题刷题训练——第 15 天
  5. 建筑图纸设计加密软件在规划设计行业的应用价值
  6. 响应式网页《一起惠返利网》项目要点
  7. Python之财富自由——天天基金数据爬取并导入excel(详细信息爬取)
  8. 铭瑄H610itx升级E1.4G版本BIOS后HDMI不能输出音频(无HD audio选项)解决方法
  9. PHP中使用DES加密解密
  10. 雨流计数与载荷寿命之间的关系