Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python,scrapy:pdf到文本的转换:运行代码时没有错误,但是don';似乎没有产生任何产出_Python_Scrapy_Pdftotext - Fatal编程技术网

Python,scrapy:pdf到文本的转换:运行代码时没有错误,但是don';似乎没有产生任何产出

Python,scrapy:pdf到文本的转换:运行代码时没有错误,但是don';似乎没有产生任何产出,python,scrapy,pdftotext,Python,Scrapy,Pdftotext,我是python、scrapy和web scraping的新手,所以我的问题可能看起来很幼稚。对此表示歉意 我想使用scrapy从pdf文件中提取数据。在这个主题上有几个关于stackoverflow的问题,我从给出的答案中查找并复制了下面的代码。但是,我无法看到任何输出。在代码中使用print函数直接查看输出,尝试将返回值写入excel文件,但也没有显示任何输出。我也没有收到任何错误 我使用的代码如下: from pdfminer.pdfinterp import PDFResourceMan

我是python、scrapy和web scraping的新手,所以我的问题可能看起来很幼稚。对此表示歉意

我想使用scrapy从pdf文件中提取数据。在这个主题上有几个关于stackoverflow的问题,我从给出的答案中查找并复制了下面的代码。但是,我无法看到任何输出。在代码中使用print函数直接查看输出,尝试将返回值写入excel文件,但也没有显示任何输出。我也没有收到任何错误

我使用的代码如下:

from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
from cStringIO import StringIO

def convert_pdf_to_txt(path):
    rsrcmgr = PDFResourceManager()
    retstr = StringIO()
    codec = 'utf-8'
    laparams = LAParams()
    device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)
    fp = file(path, 'rb')
    interpreter = PDFPageInterpreter(rsrcmgr, device)
    password = ""
    maxpages = 2
    caching = True
    pagenos=set()
    for page in PDFPage.get_pages(fp, pagenos, maxpages=maxpages, password=password,caching=caching, check_extractable=True):
        interpreter.process_page(page)
    strval = retstr.getvalue()
    print strval
    fp.close()
    device.close()
    retstr.close()
    return strval
谁能告诉我哪里出了问题

谢谢!
图希纳

我在这里没有看到任何零碎的代码。你确定你的方法是从你的剪贴代码中调用的吗?(提示:如果您在
将\u pdf\u转换为\u txt
中添加一个
打印路径
作为第一行,您是否将路径作为输出?@GHajba:我已尝试在开始时打印路径,它给出了正确的路径值。我已经将上述代码放在一个名为pdfscraper.py的单独文件中。我有另一个文件,其中定义了一个spider。在spider的parse函数中,我调用covert_pdf_to_txt函数[在文件开头导入它之后]。我不确定这是否是正确的方法。也许我在这里做错了什么?如果将路径打印到控制台,则调用该方法。您是否尝试过调试代码过程——将print语句放在某些语句之后,以查看代码到达的位置和停止的位置?或者,在处理完页面后,您是否尝试在
for
循环的内部
打印retstr.getvalue()
,以查看每次迭代的结果?@GHajba:在不同的点添加了打印stmt,包括在返回stmt之前,所有这些都被打印,因此我们将查看整个代码。但是,
print retstr.getvalue()
不打印任何内容:(它是否在
for
循环中打印某些内容?因为可能会发生这样的情况,
retstr
最后是空的——这就是为什么没有得到结果,但在循环中它有时会被填充。