安装Scraperwiki时出现错误:未找到pdftohtml

0 投票
1 回答
886 浏览
提问于 2025-04-18 06:39

我一直在尝试为Python安装Scraperwiki模块。但是,它出现了一个错误:

""用户警告:本地Scraperlibs需要pdftohtml,但在PATH中找不到pdftohtml。你可能需要安装它"

我查了一下poppler,因为他们有pdftohtml这个文件,但我不知道它是怎么工作的——我需要安装一个Python库还是一个.exe文件?我该怎么安装它呢?我是在Windows系统上运行。

非常感谢

1 个回答

0

如果你不打算使用 scraperwiki.pdftoxml() 这个功能,那么这个警告就和你无关了。不过,这并不妨碍你安装 scraperwiki 这个包。

另外,这个功能在Windows上根本无法正常使用,因为它使用了 NamedTemporaryFiles,而这个在Windows和Linux上的表现是有区别的,具体可以参考这篇文章

如果你确实想使用这个功能,最简单的方法是在Windows上下载 Calibre Portable 的最新版本。(在Sourceforge上的版本比较旧。)

你可以把它安装在任何地方;你只需要从中提取几个文件。从你安装的文件夹中,找到包含 calibre.exe 的文件夹,把 pdftohtml.exe 复制到你的工作文件夹里,同时还需要从 Calibre 安装目录下的 DLLs 文件夹中复制 freetype.dlljpeg.dlllibpng12.dllzlib1.dll

你还需要基于 scraperwiki.pdftoxml() 的其他代码,比如:

def pdftoxml(pdfdata, options):
    """converts pdf file to xml file"""
    # lots of hacky Windows fixes c.f. original
    with open('input.pdf', 'wb') as f:
    f.write(pdfdata)
    cmd = 'pdftohtml -xml -nodrm -zoom 1.5 -enc UTF-8 -noframes '
    if options:
        cmd += options
    cmd += 'input.pdf output.xml'
    cmd = cmd + " > NUL 2>&1"
    os.system(cmd)
    with open('output.xml', 'r') as f:
    return f.read()

(我最近在帮一个Windows用户解决这个问题;我会保持这个代码片段的更新。)

撰写回答