Scrapy框架----爬蟲讀書筆記

製作Scrapy爬蟲,最基礎的需要四步:

  1. 新建項目
    scrapy startproject Movies 
    自動生成一個名爲“Movies”的爬蟲項目
    scrapy genspider getmovies movie.douban.com
    自動生成一個名爲“getmovies”的爬蟲
    整個項目目錄結構如下:
        
  2. 定義目標數據
    編輯items.py文件,定義需要獲取數據的結構,該結構操作類似字典操作
import scrapy

class MoviesItem(scrapy.Item):
    UserName = scrapy.Field()
    UserID = scrapy.Field()
    MovieName = scrapy.Field()
    MovieID = scrapy.Field()
    MovieScore = scrapy.Field()
    MovieComment = scrapy.Field()

3. 製作爬蟲

編輯getmovies.py文件,定義了一個爬蟲類(默認繼承於scrapy.Spider基類)
name:爬蟲名稱,用於識別項目內的不同爬蟲,可用scrapy list 獲取整個項目爬蟲名列表
allowed_domains:爬蟲允許的域範圍,超過域範圍的數據不再抓取
start_urls:列表數據,開始抓取的URL地址

parse方法:解析每次抓取數據結果(在該方法內實現爬蟲數據的解析工作,如果是多層爬取,該方法還將產生下級爬取URL)

import scrapy

class GetmoviesSpider(scrapy.Spider):
    name = 'getmovies'
    allowed_domains = ['movie.douban.com']
    start_urls = ['http://movie.douban.com/']

    def parse(self, response):
        pass

parse方法中必須返回item給管道,可以用yield item將parse變成生成器


4. 存儲數據

編輯pipelines.py文件,用方法process_item處理每個解析後的item數據,可以存入數據庫,也可以存入文件

class MoviesPipeline(object):
    def process_item(self, item, spider):
        return item

關於scrapy的其他事項:

1. 設置

編輯settings.py文件,可以修改默認爬蟲設置
USER_AGENT='所有爬蟲發出請求的user_agent'
ROBOTSTXT_OBEY='爬蟲是否遵循網站爬蟲協議robots.txt規定';建議關閉
CONCURRENT_REQUESTS='請求併發數'
DOWNLOAD_DELAY='下載延遲(秒)'
COOKIES_ENABLED='是否禁用Cookie'
DEFAULT_REQUEST_HEADERS='默認請求報頭'
SPIDER_MIDDLEWARES='爬蟲中間件,所有定義的爬蟲中間件都必須在此註冊啓用纔有效,值大小範圍0-1000,越小優先級越高'
DOWNLOADER_MIDDLEWARES='下載中間件'

ITEM_PIPELINES='管道文件,必須啓用管道纔能有效'

2. 中間件

編輯middlewares.py文件,可以爲項目添加中間件

3. 命令操作


常用的:
scrapy list獲取爬蟲列表
scrapy shell用於進入shell來測試爬取結果,驗證解析
scrapy crawl getmovies 執行具體一個爬蟲進行爬取並處理

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章