安裝部分數據庫
命令行執行:框架
安裝: pip install scrapyscrapy
安裝後小測: 執行scrapy -hide
Scrapy爬蟲框架結構:函數
爬蟲框架:爬蟲框架是實現爬蟲功能的一個軟件結構和功能組件的集合。命令行
Scrapy:5+2結構 3d
5個模塊中間件
Spiders 用戶編寫(配置) 解析Downloader返回的響應,產生爬取項,產生額外的爬取請求。blog
Item pipelines 用戶編寫(配置) 以流水線來處理Spider產生的爬取項,可能的操做包括:清理、檢驗和查重爬取項中的HTML數據、將數據存儲到數據庫。事件
Engine 已有實現 控制數據流,觸發事件,不須要用戶修改
Downloader 已有實現 根據請求來下載網頁,不須要用戶修改
Scheduler 已有實現 對全部請求進行調度,不須要用戶修改
2箇中間件
Downloader Middleware: 實施Engine、Scheduler和Downloader之間進行用戶可配置的控制。修改、丟棄、新增請求或響應。用戶能夠編寫配置代碼,也能夠不更改。
Spider Middleware:目的:對請求和爬取項的再處理。功能:修改、丟棄、新增請求或爬取項。用戶能夠編寫配置代碼。
Requests vs. Scrapy
相同點:
二者均可以進行頁面請求和爬取,Python爬蟲的兩個重要技術路線。
二者可用性都好,文檔豐富,入門簡單。
二者都沒有處理js、提交表單、應對驗證碼等功能(可擴展)。
不一樣點:
很是小的需求,requests
不過小的請求,Scrapy
定製程度很高的需求(不考慮規模),自搭框架,requests>Scrapy。
Scrapy命令行
scrapy -h
Scrapy命令行格式:
scrapy <commad> [options][args]
Scrapy經常使用命令:
Scrapy爬蟲的第一個實例
1. 新建項目:
生成工程目錄
2. 在工程中產生一個Scrapy爬蟲
3. 配置產生的spider爬蟲
4. 運行爬蟲,獲取網頁
scrapy crawl demo
yield關鍵字
與生成器息息相關,生成器是一個不斷產生值的函數。
包含yield語句的函數是一個生成器。
生成器每次產生一個值(yield語句),函數被凍結,被喚醒後再產生一個值。