永遠保持一顆求知的心,不要被已知所束縛。
第二篇就不想寫了,這樣不行的。
A任務:爬取stackoverflow的問題和詳細內容數據并保存csv文件
用Firefox分析網頁元素:
可以看到我們要爬取的所有鏈接可以由這個目錄進,查詢到目的網頁的鏈接地址:
進入目的子網頁并分析元素:
網頁分析完成以后編寫一簡單爬蟲進行試驗:
import scrapy
class StackOverflowSpider(scrapy.Spider):
????? name = "Stackoverflow"
????? start_urls=["https://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('.inner-content h1 a::text').extract()[0],
????? ????? ????? 'votes':response.css(".vote .vote-count-post::text").extract()[0],
????? ????? ????? 'body':response.css(".post-text").extract()[0],
????? ????? ????? 'tags':response.css('.post-taglist .post-tag::text').extract(),
????? ????? ????? 'link':response.url,
????? ????? ????? }
執行爬蟲并保存為csv文件:
> scrapy runspider scrapy1.py? -o abc.csv
就可以在文件夾下發現已經存有數據的abc.csv,需要重點學習css選擇器的使用規則。