解析pdf–pdf2htmlEX

最近市场部的反馈,需要提取别家公司产品的信息,用于做比较。当然,你晓得啦,网页版的可以用scrapy来爬取,再通过beautifulsoap来解析Html内容,那pdf肿么办?当然是先转化为html罗

这个事情要分三步走:

  1. 解密pdf
  2. pdf转化为Html
  3. html的解析,提取想要的信息

一、 在线解密pdf

https://smallpdf.com/cn/unlock-pdf

二、pdf转化为html

1. pdf2htmlex简介

 

2. 安装

官方文档:https://github.com/coolwanglu/pdf2htmlEX/wiki/Building

Mac OS X可以使用brew来安装

(这个工具依赖的包实在是太多啦,太多啦,要是手动去安装,会崩溃的)

安装报错1:
==> Downloading ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng16/libpng-1.6.18.tar.xz

curl: (78) RETR response: 550
Error: Failed to download resource “libpng”
Download failed: ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng16/libpng-1.6.18.tar.xz

解决办法:

需要翻墙下载:
ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng16/libpng-1.6.30.tar.xz

cd /Users/tanqianshan/Documents/project/8.pdf_convert/lib
wget -c ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng16/libpng-1.6.30.tar.xz
tar xvJf libpng-1.6.30.tar.xz
./configure
make check
make install

安装报错2:

重新安装,仍旧报错:
tanqianshan[2.其他公司表型整理]$ brew install pdf2htmlEX
Warning: You are using OS X 10.12.
We do not provide support for this pre-release version.
You may encounter build failures or other breakage.
Error: You must `brew link cmake’ before pdf2htmlex can be installed
解决办法:
brew unistall cmake
sudo brew install cmake

brew install pdf2htmlEX

 

手动安装 pdf2htmlEX

需要提前安装好的软件
1.poppler
方法一:(失败)
pip install poppler
Could not find a version that satisfies the requirement poppler (from versions: )

方法二:
cd /Users/tanqianshan/Documents/project/8.pdf_convert/lib/
wget https://poppler.freedesktop.org/poppler-0.56.0.tar.xz
tar xvJf libpng-1.6.30.tar.xz
cd poppler-0.56.0
./configure

安装 pdf2htmlEX
cd /Users/tanqianshan/Documents/project/8.pdf_convert/lib
git clone git://github.com/coolwanglu/pdf2htmlEX.git
cd pdf2htmlEX
cmake . && make && sudo make install

 

最后的解决办法:

暂时不安装libpng

3. 运行pdf2htmlEX

三.解析Html文件

见BeautifulSoup的内容

 

PS: 两天时间,第一次用scrapy, beautifulsoap, pdf2htmlex提取了三家公司的产品信息,感觉自己棒棒哒

参考资料:
https://my.oschina.net/keysITer/blog/779869

发表评论

电子邮件地址不会被公开。 必填项已用*标注