- Scrapy的優勢
- Scrapy的安裝
- Scrapy的架構
- Scrapy的執行過程
- Scrapy的基本操做
- 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安裝
須要安裝的依賴庫有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 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的運行配置文件