【发布时间】:2018-05-01 20:45:27
【问题描述】:
我有一个运行良好的爬虫:
`# -*- coding: utf-8 -*-
import scrapy
class AllCategoriesSpider(scrapy.Spider):
name = 'vieles'
allowed_domains = ['examplewiki.de']
start_urls = ['http://www.exampleregelwiki.de/index.php/categoryA.html','http://www.exampleregelwiki.de/index.php/categoryB.html','http://www.exampleregelwiki.de/index.php/categoryC.html',]
#"Titel": :
def parse(self, response):
urls = response.css('a.ulSubMenu::attr(href)').extract() # links to den subpages
for url in urls:
url = response.urljoin(url)
yield scrapy.Request(url=url,callback=self.parse_details)
def parse_details(self,response):
yield {
"Titel": response.css("li.active.last::text").extract(),
"Content": response.css('div.ce_text.first.last.block').extract(),
}
` 与
scrapy runpider spider.py -o dat.json 它将所有信息保存到 dat.json
我希望每个起始 url 有一个输出文件 categoryA.json categoryB.json 等等。
similar question 没有得到答复,我无法复制 this answer 并且我无法从 suggestions there 中学习。
如何实现拥有多个输出文件的目标,每个 starturl 一个? 我只想运行一个命令/shellscript/文件来实现这一点。
【问题讨论】:
标签: python python-3.x web-scraping scrapy scrapy-spider