嗨!今天是第11天了,之前說明爬ptt的過程,其實我們可以理解到爬蟲的流程為:
上面三個動作的循環便是爬蟲的執行流程。
為了簡化爬蟲的開發工作,我們會使用較強大的爬蟲框架來降低開發成本,也就是Scrapy啦!
Scrapy?
(圖片來源 : Scrapy 1.5.1 documentation)
Spider發送最初的請求(Requests)給Engine。Engine在Scheduler調度一個請求(Requests),並要求下一次Requests做爬取。Scheduler回傳下一個Requests給Engine。Engine透過Downloader Middlewares發送請求給Downloader。Downloader產生一個Response透過Downloader Middlewares傳送給Engine。Engine收到來自Downloader的Response並透過Spider Middlewares發送給Spider處理。Spider處理Response並爬取的項目(item)和新的請求(Requests),透過Spider Middlewares回傳給Engine。Engine發送處理的項目(item)給Item Pipelines接著發送處理的請求(Requests)到Scheduler要求下一個可能的爬蟲請求。元件介紹:
Scrapy Engine:整個框架的核心負責處理整個系統的資料流與事件。Scheduler:排程器,接收Engine的請求放到佇列中並決定下一個要抓取的網址(預設也會去除重複的網址)。Downloader:用於下載網頁內容(發送HTTP請求/接收HTTP回應),並將內容返回給Spider。Spiders:從網頁中提取自己需要的項目。Item Pipeline:用來持久化實體、驗證實體的有效性、清除不需要的資訊。當頁面被解析後發送到專案管道經過幾個特定的順序處理資料。Downloader middlewares:Scrapy Engine和Downloader間的中介,負責處理Scrapy Engine與Downloader之間的Requests及Response。virtualenv:source path/to/your/virtualenv/bin/activate
若沒有Scrapy套件,可用pip安裝:
pip3則將pip改成pip3
pip install scrapy
這樣就完成了!
如果要確認是否安裝成功的話,可以直接在終端機執行scrapy:
(.env) ~ scrapy
Scrapy 1.3.3 - no active project
Usage:
  scrapy <command> [options] [args]
Available commands:
  bench         Run quick benchmark test
  commands
  fetch         Fetch a URL using the Scrapy downloader
  genspider     Generate new spider using pre-defined templates
  runspider     Run a self-contained spider (without creating a project)
  settings      Get settings values
  shell         Interactive scraping console
  startproject  Create new project
  version       Print Scrapy version
  view          Open URL in browser, as seen by Scrapy
  [ more ]      More commands available when run from project directory
Use "scrapy <command> -h" to see more info about a command
出現上述的指令說明文字表示已經成功安裝好了!
現在就來開啟我們第一個Scrapy專案:scrapy startproject <project_name>
scrapy startproject myFirstScrapyProject
會看到以下的內容:
New Scrapy project 'myFirstScrapyProject', using template directory 
...
You can start your first spider with:
    cd myFirstScrapyProject
    scrapy genspider example example.com
那麼我們就照著它做吧:
cd myFirstScrapyProject
scrapy genspider example example.com
創建專案後,可以看到該目錄下的檔案:
這樣就創建好專案了,是不是非常容易呢?
今天就介紹到這裡,接下來會來說明如何完成Spider的專案!
參考:
Architecture overview — Scrapy 1.5.1 documentation
請問使用VISUAL STUDIO這種IDE整合環境可以使用SCRAPY爬蟲框架嗎
對於框架的建立與操作不太會,謝謝