1. 程式人生 > >單個爬蟲檔案使用scrapy儲存為csv格式

單個爬蟲檔案使用scrapy儲存為csv格式

import scrapy

class StackOverflowSpider(scrapy.Spider):
	name = "stackoverflow"
	start_urls=["http://stackoverflow.com/questions?sort=votes"]

	def parse(self, response):
		for href in response.css('.question-summary h3 a::attr(href)'):
			full_url = response.urljoin(href.extract())
			yield scrapy.Request(full_url,callback=self.parse_question)

	def parse_question(self, response):
		yield {
			'title':response.css('h1 a::text').extract()[0],
			'votes':response.css(".question .vote-count-post::text").extract()[0],
			'body':response.css(".question .post-text").extract()[0],
			'tags': response.css('.question .post-tag::text').extract(),
			'link': response.url,
		}

這個檔案不需要配置pipeline,item,setting等檔案,如果想儲存為cvs格式,在shell終端執行scrapy runspider  stackoverflower_spider.py -o abc.csv

對於多個spider的情況,我們可以採用scrapy list可以檢查程式碼是否出錯,scrapy crawl  name -o result.csv 也就是我們通常所說的excel格式,之所以這麼使用,是因為在scrapy中沒有內建直接儲存為excell。

selector.xpath()或者response.css()