【问题标题】:How to use Python PDFkit to produce pdfs from list of URLs?如何使用 Python PDFkit 从 URL 列表中生成 pdf?
【发布时间】:2020-06-25 09:08:03
【问题描述】:

我正在尝试使用 Python PDFKit 模块来处理约 500 个 URL 的列表,例如 this one,并将页面保存为 PDF。我不需要这些 PDF 中的图片/链接。

下面的代码生成网页的 PDF 文件,但只有一堆乱码。这是一个编码问题吗?如果是,我该如何解决?

如果我在没有“选项”的情况下运行它,那么 PDFKit 会从网页生成正确的 PDF,但运行速度非常慢并且经常崩溃。我也不认为前两个选项指定正确。

import pdfkit
import re

config = pdfkit.configuration(wkhtmltopdf="/usr/local/bin/wkhtmltopdf")

options = {
    'disable-external-links': None,
    'lowquality': None,
    'page-size': 'Letter',
    'margin-top': '0.75in',
    'margin-right': '0.75in',
    'margin-bottom': '0.75in',
    'margin-left': '0.75in',
    'encoding': "UTF-8",
    'custom-header' : [('Accept-Encoding', 'gzip')],
    'cookie': [
        ('cookie-name1', 'cookie-value1'),
        ('cookie-name2', 'cookie-value2'),
    ],
    'no-outline': None
}

with open('/Users/.../PycharmProjects/RMWScraper/urllist_SCS_2014.txt') as f:
    list = f.readlines()
    for idx, URL in enumerate(list):
        print(URL)
        d = re.findall("20(.*)/c", URL)[0]
        date = d.replace("/","")
        print(date)
        pdfkit.from_url(URL, '/Users/..../PycharmProjects/RMWScraper/PDFS/'+date+'_'+str(idx)+'.pdf', configuration=config, options=options)

【问题讨论】:

    标签: python pdf wkhtmltopdf pdfkit


    【解决方案1】:

    我设法通过不使用 PDFkit 并直接使用 wkhtmltopdf 来解决此问题 - 使用以下代码从终端调用以遍历我的 URL 列表。使用这些选项运行时,'wkhtmltopdf' 似乎要快得多。

    for idx, URL in enumerate(URLS):
         d = re.findall("20(.*)/c", URL)[0]
         date = d.replace("/", "")
         os.system("wkhtmltopdf --disable-javascript --lowquality --disable-external-links --no-images --load-error-handling ignore "+URL+" article_"+date+"_"+str(idx)+".pdf")
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-11
      • 2018-06-18
      • 2022-01-13
      • 1970-01-01
      • 2016-08-20
      • 1970-01-01
      相关资源
      最近更新 更多