For循环遍历列表中的前两个项目,然后在第三个项目上出现回溯错误

2024-05-19 12:03:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用for循环遍历一个列表并为pdfkit模块创建变量,它对列表中的前两个项目工作正常,然后在第三个项目上出现错误。这是我的代码:

import pdfkit
import time


link1 = "https://www."
link2 = ".com"
pdf = ".pdf"
for line in open('links.txt'):
  print(line.strip("\n\r"))
  newlink = link1 + line.strip("\n\r") + link2
  print(newlink)
  newpdf = line.strip("\n\r") + pdf
  print(newpdf)
  pdfkit.from_url(newlink, newpdf)
print('Finished')

从这个列表中可以看出:

^{pr2}$

它成功地完成了前两个项目,并打印了一个pdf文件,然后我得到一个错误,它说

Traceback (most recent call last): File new.py, line 14 in module pdfkit.from_url(newlink, newpdf)

File "/usr/local/lib/python2.7/dist-packages/pdfkit/api.py", line 26 in from_return r.to_pdf(output_path)

File "/usr/local/lib/python2.7/dist-packages/pdfkit/pdfkit.py," line 156, in traise IOError('wkhtmltopdf reported an error:\n' + stderr)

IOError:wkhtmltopdf reported an error:

有人知道我为什么会犯这个错误,以及如何修正它吗?在


Tags: 项目infrompy列表forpdf错误
2条回答

我还没有找到wkhtml上网络错误的修复程序。 但是,我找到了一个替代的插件,叫做^{}。在

下面是实现了weasyprint的代码的另一个版本。在

from weasyprint import HTML

link1 = "https://www."
link2 = ".com"
pdf = ".pdf"
for line in open('links.txt'):
  print(line.strip("\n\r"))
  newlink = link1 + line.strip("\n\r") + link2
  print("newlink "+newlink)
  newpdf = line.strip("\n\r") + pdf
  print(newpdf)
  HTML(newlink).write_pdf(newpdf)
print('Finished')

希望这有帮助。在

当我运行与你相同的代码时,它被困在“雅虎”上,而谷歌和其他一些我尝试过的网站却成功了。它为我抛出了以下错误。在

raise IOError("wkhtmltopdf exited with non-zero code {0}. error:\n{1}".format(exit_code, stderr))
OSError: wkhtmltopdf exited with non-zero code 1. error:
Loading pages (1/6)
QFont::setPixelSize: Pixel size <= 0 (0)
QFont::setPixelSize: Pixel size <= 0 (0)
libpng warning: iCCP: known incorrect sRGB profile
Counting pages (2/6)                                               
QFont::setPixelSize: Pixel size <= 0 (0)
QFont::setPixelSize: Pixel size <= 0 (0)
Resolving links (4/6)                                                       
Loading headers and footers (5/6)                                           
Printing pages (6/6)
Done                                                                      
Exit with code 1 due to network error: ProtocolFailure

正如您在这里看到的,这似乎是一个由于协议而导致的错误,它意味着{}由于某种原因无法加载页面。我想你收到的错误一定是来自类似的消息来源。 因此,如果网站的选择只是武断的,那么就选择能起作用的网站。在

如果没有,请告诉我,我将深入研究wkhtml文档,试图找出错误源。在

相关问题 更多 >

    热门问题