在磁盘上使用scraperwiki for pdf-file

时间:2015-05-26 16:43:08

标签: python-2.7 pdf scraperwiki

我正在尝试使用scraperwiki for pyhon从pdf文档中获取一些数据。如果我使用 urllib2 下载文件,它可以很好地工作:

pdfdata = urllib2.urlopen(url).read()
xmldata = scraperwiki.pdftoxml(pdfdata)
root = lxml.html.fromstring(xmldata)
pages = list(root)

但是这里有棘手的部分。正如我想对磁盘上的大量pdf文件这样做,我想取消第一行并直接传递pdf文件作为参数。但是,如果我尝试

pdfdata = open("filename.pdf","wb")
xmldata = scraperwiki.pdftoxml(pdfdata)
root = lxml.html.fromstring(xmldata)

我收到以下错误

xmldata = scraperwiki.pdftoxml(pdfdata)
File "/usr/local/lib/python2.7/dist-packages/scraperwiki/utils.py", line 44, in pdftoxml
pdffout.write(pdfdata)
TypeError: must be string or buffer, not file

我猜这是因为我没有正确打开pdf?

如果是这样,有没有办法像 urllib2.urlopen()那样从磁盘打开pdf?

1 个答案:

答案 0 :(得分:0)

urllib2.urlopen(...)。read()只是读取你从作为参数传递的url返回的流的内容。

open()返回文件处理程序。正如urllib2需要执行open()调用然后调用read()一样,文件处理程序也是如此。

更改您的程序以使用以下行:

const char *

这将打开你的pdf,然后将内容读入名为pdfdata的缓冲区。从那里你对scraperwiki.pdftoxml()的调用将按预期工作。