Scrapy - 无法下载文件

时间:2018-02-13 21:32:20

标签: python-3.x scrapy

我无法让Scrapy的文件下载管道正常工作。日志中没有错误。我错过了什么?

**我知道fspider.py运行蜘蛛并不完整 - 我现在只使用parse_list调试器测试scrapy parse

fspider.py:

import scrapy
from scrapy.spiders import CrawlSpider

class FSpider(CrawlSpider):
  name = 'fsp'
  allowed_domains = 'hdr.undp.org'
  start_urls = ['http://hdr.undp.org/en/2016-report/download']

def parse_list(self, response):
  links = [response.urljoin(link) for link in response.css('li ::attr(href)').extract()]
  for link in links:
    if 'overview' in link.lower():
      yield {'file_urls': link}

settings.py我添加了:

ITEM_PIPELINES = {'scrapy.pipelines.files.FilesPipeline': 1}
FILES_STORE = 'files'

当我运行parse调试器时,我得到:

>>> STATUS DEPTH LEVEL 1 <<<
# Scraped Items  ------------------------------------------------------------
[{'file_urls': 'http://hdr.undp.org/sites/default/files/HDR2016_EN_Overview_Web.pdf'},
 {'file_urls': 'http://hdr.undp.org/sites/default/files/HDR2016_FR_Overview_Web.pdf'},
 {'file_urls': 'http://hdr.undp.org/sites/default/files/HDR2016_SP_Overview_Web.pdf'},
 {'file_urls': 'http://hdr.undp.org/sites/default/files/HDR2016_AR_Overview_Web.pdf'},
 {'file_urls': 'http://hdr.undp.org/sites/default/files/HDR2016_RU_Overview_Web.pdf'},
 {'file_urls': 'http://hdr.undp.org/sites/default/files/hdr2016_cn_overview_web.pdf'}]

# Requests  -----------------------------------------------------------------
[]

...但没有下载任何内容。

任何提示?

1 个答案:

答案 0 :(得分:0)

想出来:在parse函数中,链接必须作为列表传递:

  yield {'file_urls': [link]}