Python读取PDF内容

晚上翻看《Python网络数据采集》这本书,看到读取PDF内容的代码,想起来前几天集搜客刚刚发布了一个抓取网页pdf内容的抓取规则,这个规则适用的是已经把pdf内容合到html里的情况。

现在这个python版本的代码,是读取pdf文件内容(互联网上的或是本地的),觉得这个很有参考价值,就发个贴记录下来。
这段代码主要是用了一个第三方库PDFMiner3K把PDF读成字符串,然后用StringIO转换成文件对象。

from urllib.request import urlopen
from pdfminer.pdfinterp import PDFResourceManager, process_pdf
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from io import StringIO
from io import open

def readPDF(pdfFile):
    rsrcmgr = PDFResourceManager()
    retstr = StringIO()
    laparams = LAParams()
    device = TextConverter(rsrcmgr, retstr, laparams=laparams)

    process_pdf(rsrcmgr, device, pdfFile)
    device.close()

    content = retstr.getvalue()
    retstr.close()
    return content

pdfFile = urlopen("http://pythonscraping.com/pages/warandpeace/chapter1.pdf")
outputString = readPDF(pdfFile)
print(outputString)
pdfFile.close()

如果PDF文件在你的电脑里,那就把urlopen返回的对象pdfFile替换成普通的open()文件对象。

时间: 2024-10-01 17:36:22

Python读取PDF内容的相关文章

读取pdf内容分页和全部

//读取pdf 全部内容public static String topdffile(String pdffile){ StringBuffer result = new StringBuffer(); String str=null; FileInputStream is = null; PDDocument document = null; try { is = new FileInputStream(pdffile); PDFParser parser = new PDFParser(is

Python读取PDF文档

1 from pdfminer.converter import PDFPageAggregator 2 from pdfminer.layout import LAParams 3 from pdfminer.pdfparser import PDFParser 4 from pdfminer.pdfparser import PDFDocument 5 from pdfminer.pdfinterp import PDFResourceManager 6 from pdfminer.pdfi

记一次为解决Python读取PDF文件的Shell操作

目录 一.背景 二.问题 三.解决 四.一顿分析及 Shell 操作 五.后续 一.背景 本想将 PDF 文件转换为 Word 文档,然后网上搜索了一下发现有挺多转换的软件.有的是免费的.收费,咱也不知哪个好使,还得一个个安装试用.先不说能不解决问题,就这安装试用想想就脑壳疼.便想起了"Python 大法",随即搜了几篇看起来比较完整的博客,二话不说粘贴复制,改改运行试试.使用环境(python3.6+pdfminer3k),代码这里就不放出来了. 二.问题 运气不好,这一试就报错WA

Python读取文件内容的三种方式并比较

本次实验的文件是一个60M的文件,共计392660行内容. 程序一: def one(): start = time.clock() fo = open(file,'r') fc = fo.readlines() num = 0 for l in fc: tup = l.rstrip('\n').rstrip().split('\t') num = num+1 fo.close() end = time.clock() print end-start print num 运行结果:0.81214

深入学习python解析并读取PDF文件内容的方法

这篇文章主要学习了python解析并读取PDF文件内容的方法,包括对学习库的应用,python2.7和python3.6中python解析PDF文件内容库的更新,包括对pdfminer库的详细解释和应用.主要参考了一些已有的博客内容,代码. 主要思路是首先利用一个做项目的形式,描述所做的问题,运行环境,和需要安装的库,然后写代码,此代码是在python2.7中运行,然后写出在python3.6中运行的代码,并详细解释python2.7和python3.6中python库的一些不同之处,最后详细的

python爬虫:读取PDF

下面的代码可以实现用python读取PDF,包括读取本地和网络上的PDF. pdfminer下载地址:https://pypi.python.org/packages/source/p/pdfminer/pdfminer-20140328.tar.gz #!/usr/bin/python# -*- encoding:utf-8 -*- from urllib2 import urlopenfrom pdfminer.pdfinterp import PDFResourceManager, PDF

python解析PDF文档

1.安装 pip install pdfminer3k 2.  python读取PDF文档代码分析 PDF格式不是规范格式. 尽管它被叫做"PDF文档", 但并不像word或者html文档.PDF的表现更像一张图片.PDF更像是在一张纸的各个准确的位置上把内容都摆放出来.大部分情况下,没有逻辑结构,比如句子或段落,并且不能自适应页面大小的调整.PDFMiner尝试通过猜测它们的布局来重建它们的结构,但是不保证一定能工作.我知道这样很难看,但是,PDF确实不够规范. 下面这个图片是使用流

Python逐行读取文件内容

Python逐行读取文件内容thefile= open("foo.txt") line = thefile.readline() while line: print line, line = thefile.readline() thefile.close() Windows下文件路径的写法:E:/codes/tions.txt 写文件:thefile= open("foo.txt", "rw+")for item in thelist: the

Python跳过第一行读取文件内容

Python编程时,经常需要跳过第一行读取文件内容.比较容易想到是为每行设置一个line_num,然后判断line_num是否为1,如果不等于1,则进行读取操作.相应的Python代码如下: [python] view plain copy input_file = open("C:\\Python34\\test.csv") line_num = 0 for line in islice(input_file, 1, None): line_num += 1 if (line_num