單個爬蟲檔案使用scrapy儲存為csv格式
阿新 • • 發佈:2019-02-12
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()