1. 程式人生 > >Scrapy爬蟲框架 使用流程、框架、儲存模式介紹

Scrapy爬蟲框架 使用流程、框架、儲存模式介紹

Scrapy特色

  • 建議 使用 xpath 進行解析 (因為Scrapy集成了xpath介面)
  • 高效能爬蟲、多執行緒、資料解析、持久化儲存
  • 自動攜帶cookie無需單獨操作

安裝

mac下 pip install scrapy

使用流程

  1. 終端cd 目錄 scrapy startproject 工程名 (建立專案)
  2. 終端cd到下面根目錄 scrapy genspider 爬蟲名 起始url
  3. 編寫配置檔案 setting.py
# 19行 請求身份偽裝user_agent 定義
USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36'
# 22行 是否遵從robots協議(君子協議) ROBOTSTXT_OBEY = False # 開啟管道
  1. 執行: scrapy crawl 爬蟲檔名--nolog 阻止日誌輸出)

目錄結構

在這裡插入圖片描述

儲存資料

  • 磁碟儲存

基於終端

# 保證parse方法返回可迭代物件
# 使用終端指令資料儲存

'''爬蟲必須是返回可迭代物件'''
def parse(self, response):
    div_list = response.xpath("//div[@id='content-left']/div")
    data_list =
[] for div in div_list: author = div.xpath("./div/a[2]/h2/text()").extract()[0] content = div.xpath(".//div[@class='content']/span/text()").extract_first() data_dict = { 'author': author, 'content': content, } data_list.append(data_dict) return
data_list '''終端命令''' scrapy crawl qiubai -o 儲存檔名.字尾 --nolog

基於管道流程

  1. 將解析資料存到items物件
  2. 使用yield 將items交給管道檔案處理
  3. 在管道檔案pipelines編寫程式碼儲存
  4. 在setting配置檔案開啟管道

基於管道儲存案例有另一篇我的文章

  • 資料庫 請檢視我的另一具體案例部落格