0
我是Python新手,使用Scrapy时出现问题。我需要从URL下载一些PDF文件(这些URL指向PDF,但其中没有.pdf
),并将它们存储在一个目录中。如何使用Scrapy保存PDF文件?
到目前为止,我已填充我的项目有标题(你可以看到我已经通过了标题为我以前的请求,元数据)和身体(这是我从我的最后一个请求的响应身体得到)。
当使用with open
功能在我的代码,但是,我总是这样从终端得到一个错误回来:
exceptions.IOError: [Errno 2] No such file or directory:
这里是我的代码:
def parse_objects:
....
item = Item()
item['title'] = titles.xpath('text()').extract()
item['url'] = titles.xpath('a[@class="title"]/@href').extract()
request = Request(item['url'][0], callback = self.parse_urls)
request.meta['item'] = item
yield request
def parse_urls(self,response):
item = response.meta['item']
item['desc'] = response.body
with open(item['title'][1], "w") as f:
f.write(response.body)
我使用item['title'][1]
,因为标题字段是一个列表,我需要使用第二个名称保存PDF文件。据我所知,当我使用with open
并且没有这样的文件时,Python会自动创建一个文件。
我正在使用Python 3.4。
任何人都可以帮忙吗?
后的'url'您在其上运行的蜘蛛。那么我们可以测试你的代码。发布你的'打开'功能也 – 2014-11-22 18:20:55
我发现我的自我解决方案。我试图保存在其标题中包含字符“/”的pdf文件,因此在函数“with open”中这看起来像一个目录。我用下划线(_)更改了反斜杠,并且一切似乎都正常工作。 – bettas 2014-11-23 20:59:14