網絡爬蟲框架-Scrapy

網絡爬蟲框架-Scrapyweb

簡介:開源的Python爬蟲框架,用於抓取web站點並從頁面中提取結構化的數據;數據庫

用途普遍,可用於數據挖掘、監測和自動化測試網絡

Scrapy優勢架構

  1. 快速強大;
  2. 代碼量簡潔即可完成爬取;
  3. 易擴展;
  4. 可添加新的功能模塊

Scrapy高級特性:框架

  1. 內置數據抽取器CSS/XPath/re
  2. 交互式控制檯用於調試
  3. 結果輸出的格式支持,JSON,CSV,XML等
  4. 自動處理編碼
  5. 支持自定義擴展

Scrapy架構:scrapy

  1. 調度器從待下載URL中取出一個URL。
  2. 調度器啓動採集模塊-Spiders模塊
  3. 採集模塊把URL傳給下載器下載器把資源下載下來自動處理編碼。
  4. 提取目標數據,抽取出目標對象,由管道進行進一步的處理;好比存入數據庫、文本。
  5. 如果解析出的是URL,則把URL插入到待爬取隊列當中。

Scrapy的安裝:ide

`conda install -c conda-forge scrapy`函數

檢測是否安裝成功:`scrapy bench`測試

建立工程:`scrapy startproject tutorial(項目名稱)`網站

目錄結構:

 

 


 

Scrapy使用步驟

  1. 建立工程
    scrapy startproject projectname

     

  2. 定義Item,構造爬取的對象(可選)
    object1_name = scrapy.Field() 
    object2_name = scrapy.Filed()
    object3_name = scrapy.Field()
    #建立若干個自定義爬取對象的名稱

     

  3. 編寫Spider,爬蟲主體
    cd projectname
    scrapy genspider spidername http://www.baidu.com/
    #spidername(自定義Spider主體的文件名稱),後接須要爬取的網站url。

     

  4. 編寫配置和Pipeline,用於處理爬取的結果(可選)
    • 目的:處理解析的Item,將結果保存爲CSV文件
    • 在文件-setting.py中配置CommentPipeline,其中,優先級爲300,優先級的數值越小,優先級越高。  
    • 將文件-pipelines.py中編寫的類添加到文件-setting.py中設置優先級數值。
    • 在文件-pipelines.py中定義的類,添加/編寫open_spider(),close_spider()、process_item()函數。

  5. 執行爬蟲Spider:
    scrapy crawl Spidername
    #Spidername和Sipder主體的文件名稱一致
相關文章
相關標籤/搜索