大佬教程收集整理的这篇文章主要介绍了我应该创建管道来保存草率文件吗?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
是和否[1]。如果您获取一个pdf文件,它将被存储在内存中,但是如果pdf文件的大小不足以填满您的可用内存,那就可以了。
您可以将pdf保存在SpIDer回调中:
@H_616_7@def parse_LisTing(self, responsE): # ... extract pdf urls for url in pdf_urls: yIEld request(url, callBACk=self.save_pdf) def save_pdf(self, responsE): path = self.get_path(response.url) with open(path, "wb") as f: f.write(response.body)
如果选择在管道中执行此操作:
@H_616_7@# in the spIDer def parse_pdf(self, responsE): i = MyItem() I['body'] = response.body I['url'] = response.url # you can add more Metadata to the item return i # in your pipeline def process_item(self, item, spIDer): path = self.get_path(item['url']) with open(path, "wb") as f: f.write(item['body']) # remove body and add path as reference del item['body'] item['path'] = path # let item be processed by other pipelines. IE. db store return item
[1]另一种方法可能是仅存储pdf的url,并使用另一种方法来获取文档而不会缓冲到内存中。(例如@H_616_7@wget)
我需要保存一个文件(.pdf),但不确定如何执行。我需要保存.pdfs并以某种方式将它们存储在一个目录中,就像它们存储在我要删除的站点上一样。
从我收集的数据中,我需要建立一个管道,但是据我所知,管道保存的“ Items”和“
items”只是基本数据,例如字符串/数字。保存文件是对管道的正确使用,还是应该将文件保存在Spider中?
以上是大佬教程为你收集整理的我应该创建管道来保存草率文件吗?全部内容,希望文章能够帮你解决我应该创建管道来保存草率文件吗?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。