【发布时间】:2018-09-10 05:45:27
【问题描述】:
我有一个 Python 程序,我需要在其中从 Internet 下载 .jpg 文件。我有一个while True: 循环,它遍历我拥有的 URL 并从每个 URL 下载一个文件。每 20 个左右的文件,urllib2 下载一个半灰色的文件,FPDF 由于损坏的文件而拒绝从下载的文件中制作 PDF。
这是我的代码:
filename = ''.join(pageForFilename)
add_image_to_list()
file_ = open(filename, 'w')
file_.write(data)
file_.close()
time.sleep(0.5)
注意 pageForFilename 是 page-001.jpg 可能很有用
我想也许我不允许脚本完全下载文件,所以我添加了一个time.sleep(0.5),认为它会修复它。
python 2.7 MacOS Sierra
【问题讨论】:
-
您认为 URLLib2 正在破坏文件。当然,您通过“手动”(通过浏览器、使用 curl、或使用 FTP 程序或任何其他方式)下载此类损坏的文件来验证这一点,并且您得到了正确的文件。对吗?
-
在不知道您正在下载什么文件的情况下,很难调试出了什么问题。也许有些文件实际上是 JPEG2000 而不是 JFIF,而您的 JPG 到 PDF 代码无法处理这些文件。或者,即使在 JFIF 中,您的代码也可能无法处理灰度 JPG。也许它们甚至被错误地标记为 PNG 或 GIF 文件。谁知道?
-
@usr2564301 是的,我已经尝试从 URL 手动获取文件,但没有遇到任何问题。
-
@Squ1dd13Dev 您确认它们实际上是 JPEG/JFIF 文件,并且您的 FPDF 可以处理它们?
-
是的。如果我取出损坏的文件,FPDF 可以处理它们并创建 PDF。我从中下载的 url 以 .jpg 结尾,我的操作系统验证它们是 jpeg 文件
标签: python python-2.7 urllib2