scrapy學(xué)習(xí)筆記(二)

永遠保持一顆求知的心,不要被已知所束縛。

第二篇就不想寫了,這樣不行的。

A任務(wù):爬取stackoverflow的問題和詳細內(nèi)容數(shù)據(jù)并保存csv文件

用Firefox分析網(wǎng)頁元素:

圖一 主目錄網(wǎng)頁元素分析

可以看到我們要爬取的所有鏈接可以由這個目錄進,查詢到目的網(wǎng)頁的鏈接地址:

圖二 主目錄下目的網(wǎng)頁鏈接元素分析

進入目的子網(wǎng)頁并分析元素:


圖三 目的子網(wǎng)頁元素分析

網(wǎng)頁分析完成以后編寫一簡單爬蟲進行試驗:

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,

????? ????? ????? }

執(zhí)行爬蟲并保存為csv文件:

> scrapy runspider scrapy1.py? -o abc.csv

就可以在文件夾下發(fā)現(xiàn)已經(jīng)存有數(shù)據(jù)的abc.csv,需要重點學(xué)習(xí)css選擇器的使用規(guī)則。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • scrapy學(xué)習(xí)筆記(有示例版) 我的博客 scrapy學(xué)習(xí)筆記1.使用scrapy1.1創(chuàng)建工程1.2創(chuàng)建爬蟲模...
    陳思煜閱讀 12,785評論 4 46
  • 1.Scrapy的命令行命令 創(chuàng)建一個Scrapy工程終端輸入: PyCharm 下直接運行 ScrapyScra...
    EnjoyWT閱讀 3,155評論 0 1
  • 爬蟲初探-Scrapy Scrapy 資料 官方文檔永遠是首選,建議把 tutorial 完整的過一遍。 網(wǎng)址:h...
    廖少少閱讀 2,099評論 0 3
  • 音樂響起, 那熟悉的旋律, 再次撥動了心悸, 勾起過往, 留存的些許記憶, 開啟循環(huán), 靜靜回憶。 眼神變得深邃迷...
    靜靜086閱讀 182評論 0 0
  • ** 每個人或多或少的玩一些游戲,有人喜歡大型網(wǎng)絡(luò)游戲, 有人喜歡簡簡單單的游戲,可是又有多少人真正想過游戲的意義...
    青木石閱讀 843評論 0 0