Scrapy基礎

  1. Scrapy的優勢
  2. Scrapy的安裝
  3. Scrapy的架構
  4. Scrapy的執行過程
  5. Scrapy的基本操做
  6. Scrapy的工程文件

1、scrapy的優勢

提供了內置的HTTP緩存,以加速本地開發
童工了自動節流調節機制,並且具備遵照robots.txt的內置的能力
能夠定義爬行深度的限制,以免爬蟲進入死循環連接
會自動保留會話
執行自動HTTP基本認證,不須要明確保存狀態
能夠自動填寫登入表單
scrapy有一個內置的中間件,能夠自動設置請求中的引用頭referrer
支持經過3XX響應重定向,也能夠經過HTML元刷新
避免被網站使用的<noscript>meta重定向困住,以檢測沒有JS支持的頁面
默認使用CSS選擇器或者Xpath編寫解析器
能夠經過Splash或任何其餘技術Selenium呈現JavaScript頁面
擁有強的社區支持和豐富的插件和擴展來擴展其功能
提供了通用的蜘蛛來抓取常見的格式,站點地圖CSV和XML
內置支持以多種格式(JSON,CSV,XML,JSON-lines)導出收集的數據並儲存在多個後端FTP S3 本地文件系統中

2、scrapy的安裝

使用python的pip安裝
pip install scrapy
須要安裝的依賴庫有lxml,pyOpenSSL,Twisted,pywin32
安裝的時候只有Twisted安裝不上,能夠選擇手動安裝
到python的Whl文件
whl文件須要選擇與系統相對應的版本 不然會安裝失敗
安裝方法 打開命令行窗口輸入pip installl 而後把下載的whl文件拖進去回車就OK了

3、scrapy的架構

 

4、scrapy的執行過程

1 引擎打開一個網站 open a domain 找處處理該網站的Spider並向該Spider請求第一個爬取的URL
2 引擎從Spider中獲取第一個要爬取的URL並在調度器Scheduler中以Request調度
3 引擎向調度器請求下一個要爬取的URL
4 調度器返回下一個要爬取的URL給引擎,引擎將URL經過下載中間件請求request方向轉發給下載器
5 一旦頁面下載完畢,下載器生成一個該頁面的Response,並將其經過下載中間件(返回Response方向)發送給引擎
6 引擎從下在其中接收Response並經過Spider中間件(輸入方向)發送給Spider處理
7 Spider處理Response並返回爬取到的Item及(跟進的新的Request給引擎
8 引擎將(Spider返回的)爬取到的Item給Item Pipeline,將Spider返回的Request給調度器
9 從第2步 重複知道調度器中沒有更多的Request,引擎關閉對該網站的執行進程
 

5、scrapy的基本操做

Scrapy是給程序員使用的並無圖形化界面,可是純命令行的操做確實效率高一點
建立一個工程
scrapy startproject <名稱>
 
建立一個爬取百度首頁的工程
scrapy startproject baidu
cd baidu //進入工程文件夾
scrapy genspider baidu_spider baidu.com 建立一個爬蟲
scrapy crawl baidu_spider // 運行爬蟲
編寫baidu_spider.py爬蟲文件
而後運行爬蟲
scrapy crawl baidu_spider 

6、Scrapy工程文件

  • __init__.py   #包定義
  • items.py       #模型定義
  • pipeline.py        #管道定義
  • settings.py        #配置文件
  • spiders             #蜘蛛文件夾
  • __init__.py       #默認的蜘蛛代碼文件
  • scrapy,py         #Scrapy的運行配置文件
相關連接:
Scrapy文檔地址: https://docs.scrapy.org/en/latest/
Scrapy中文網:  http://www.scrapyd.cn
相關文章
相關標籤/搜索