Python爬蟲基礎講解之scrapy框架

網絡爬蟲

網絡爬蟲是指在互聯網上自動爬取網站內容信息的程序,也被稱作網絡蜘蛛或網絡機器人。大型的爬蟲程序被廣泛應用於搜索引擎、數據挖掘等領域,個人用戶或企業也可以利用爬蟲收集對自身有價值的數據。

一個網絡爬蟲程序的基本執行流程可以總結三個過程:請求數據,解析數據,保存數據

數據請求

請求的數據除瞭普通的HTML之外,還有json數據、字符串數據、圖片、視頻、音頻等。

解析數據

當一個數據下載完成後,對數據中的內容進行分析,並提取出需要的數據,提取到的數據可以以多種形式保存起來,數據的格式有非常多種,常見的有csv、json、pickle等

保存數據

最後將數據以某種格式(CSV、JSON)寫入文件中,或存儲到數據庫(MySQL、MongoDB)中。同時保存為一種或者多種。

通常,我們想要獲取的數據並不隻在一個頁面中,而是分佈在多個頁面中,這些頁面彼此聯系,一個頁面中可能包含一個或多個到其他頁面的鏈接,提取完當前頁面中的數據後,還要把頁面中的某些鏈接也提取出來,然後對鏈接頁面進行爬取(循環1-3步驟)。

設計爬蟲程序時,還要考慮防止重復爬取相同頁面(URL去重)、網頁搜索策略(深度優先或廣度優先等)、爬蟲訪問邊界限定等一系列問題。

從頭開發一個爬蟲程序是一項煩瑣的工作,為瞭避免因制造輪子而消耗大量時間,在實際應用中我們可以選擇使用一些優秀的爬蟲框架,使用框架可以降低開發成本,提高程序質量,讓我們能夠專註於業務邏輯(爬取有價值的數據)。接下來,就帶你學習目前非常流行的開源爬蟲框架Scrapy。

scrapy安裝

scrapy官網:https://scrapy.org/
scrapy中文文檔:https://www.osgeo.cn/scrapy/intro/overview.html

安裝方式

在任意操作系統下,可以使用pip安裝Scrapy,例如:

pip install scrapy

安裝完成後我們需要測試安裝是否成功,通過如下步驟確認:

在終端中測試能否執行scrapy這條命令

scrapy 2.4.0 - no active project
 
usage:
    scrapy <command>[options] [args]
 
Available commands :
    bench        Run quick benchmark test
    fetch        Fetch a URL using the scrapy down1oader
    genspider        Generate new spider using pre-defined temp1ates
    runspider        Run a self-contained spider (without creating a project)
    settings        Get settings values
    she11        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 bench測試連通性,如果出現以下情況表示安裝成功:

通過瞭以上兩項檢測,說明Scrapy安裝成功瞭。如上所示,我們安裝的是當前最新版本2.4.0。

註意:

在安裝Scrapy的過程中可能會遇到缺少VC++等錯誤,可以安裝缺失模塊的離線包

成功安裝後,在CMD下運行scrapy出現上圖不算真正成功,檢測真正是否成功使用scrapybench測試,如果沒有提示錯誤,就代表成功安裝。

全局命令

scrapy 2.4.0 - no active project
 
usage:
  scrapy <command>[options] [args]
 
Available commands :
  bench      Run quick benchmark test #測試電腦性能
  fetch      Fetch a URL using the scrapy down1oader#將源代碼下載下來並顯示出來
  genspider      Generate new spider using pre-defined temp1ates#創建一個新的spider文件
  runspider      Run a self-contained spider (without creating a project)# 這個和通過craw1啟動爬蟲不同,scrapy runspider爬蟲文件名稱
  settings      Get settings values#獲取當前的配置信息
  she11      Interactive scraping console#進入scrapy 的交互模式
  startproject      create new project#創建爬蟲項目
  version      Print scrapy version#顯示scrapy框架的版本
  view      open URL in browser,as seen by scrapy#將網頁document內容下載下來,並且在瀏覽器顯示出來
 
  [ more ]      More commands available when run from project directory
use "scrapy <command> -h" to see more info about a command

項目命令

  • scrapy startproject projectname
  • 創建一個項目
  • scrapy genspider spidername domain
  • 創建爬蟲。創建好爬蟲項目以後,還需要創建爬蟲。
  • scrapy crawl spidername
  • 運行爬蟲。註意該命令運行時所在的目錄。

到此這篇關於Python爬蟲基礎講解之scrapy框架的文章就介紹到這瞭,更多相關Python scrapy框架內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: