前言:
做一個簡單的scrapy爬蟲,帶大家認識一下創建scrapy的大致流程。我們就抓取扇貝上的單詞書,python的高頻詞匯。
步驟:
一,新建一個工程scrapy_shanbay
二,在工程中中新建一個爬蟲項目,scrapy startproject shanbei_spider
三,切入到項目目錄下,然后在項目中,新建一個爬蟲spider。scrapy crawl shanbay shanbay.com
四,在item中,新建一個字段,既要獲取的字段。
五,開始書寫spider,里面分兩部分,第一部分 start_request()主要是獲取所有的url,第二部分是解析頁面,獲取所需要的字段,並存儲。
import scrapy from scrapy.http import Request from shanbay_spider.items import ShanbaySpiderItem class ShanbaySpider(scrapy.Spider): name = 'shanbay' allowed_domains = ['shanbay.com'] # start_urls = ['http://shanbay.com/'] def start_requests(self): for i in range(29): page = 540709 + i * 3 url_base = 'https://www.shanbay.com/wordlist/187711/' + str(page) + '/?page={}' for x in range(10): url = url_base.format(x+ 1) yield Request(url,self.parse) def parse(self, response): html_contents = response.xpath('/html/body/div[3]/div/div[1]/div[2]/div/table/tbody/tr//*/text()') item = ShanbaySpiderItem() for result in html_contents: item['Chinese'] = result.extract() yield item
六,執行運行保存命令,scrapy crawl shanbay -o shanbay.csv
七,東西都保存在shanbay.csv中了
總結,其實這個非常簡單,但是你用scrapy你會明顯感覺到比requests快的很多。而且相比於requests庫,你發現用scrapy會很簡單。比較明顯的一點就是你用request的話,你需要自己寫個列表存放url,存進去再一個一個拿出來。再scrapy中,你只需要把url生成,然后yield request就行了,非常之方便。