scrapy架构
Scrapy是一個快速功能強大的網絡爬蟲框架
scrapy的安裝
pip install scrapy
構架結構
5+2結構
1.Engine
(1) 控制所有模塊之間的數據流
(2) 根據條件觸發事件
不需要用戶修改
2.Downloader
根據請求下載網頁
不需要用戶修改
3.Scheduler
對所有爬取請求進行調度管理
不需要用戶修改
4.Downloader Middleware
目的:實施Engine、Scheduler和Downloader
之間進行用戶可配置的控制
功能:修改、丟棄、新增請求或響應
用戶可以編寫配置代碼
5.Spider
(1) 解析Downloader返回的響應(Response)
(2) 產生爬取項(scraped item)
(3) 產生額外的爬取請求(Request) “5+2”結構
需要用戶編寫配置代碼
6.Item Pipelines
(1) 以流水線方式處理Spider產生的爬取項
(2) 由一組操作順序組成,類似流水線,每個操
作是一個Item Pipeline類型
(3) 可能操作包括:清理、檢驗和查重爬取項中
的HTML數據、將數據存儲到數據庫
需要用戶編寫配置代碼
7.Spider Middleware
目的:對請求和爬取項的再處理
功能:修改、丟棄、新增請求或爬取項
用戶可以編寫配置代碼
requests 與 scrapy的比較
相同點:
兩者都可以進行頁面請求和爬取,Python爬蟲的兩個重要技術路線
兩者可用性都好,文檔豐富,入門簡單
兩者都沒有處理js、提交表單、應對驗證碼等功能(可擴展)
不同點:
左為requests,右為scrapy
如何選擇:
非常小的需求,requests庫
不太小的需求,Scrapy框架
定制程度很高的需求(不考慮規模),自搭框架,requests > Scrapy
scrapy 常用命令
1.創建一個名為BaiduStocks的項目:scrapy startproject BaiduStocks
進入相關的工程區域:cd BaiduStocks
創建一個名為stocks的爬蟲:scrapy genspider stocks baidu.com
2.配置stocks.py 文件
parse()用于處理響應,解析內容形成字典,發現新的URL爬取請求
3.編寫piplines.py文件
4.編寫好后還需要在settings.py文件中加上
5.執行程序,回到命令行
scrapy crawl stocks
配置并發連接選項
settings.py文件
總結
- 上一篇: c罗python可视化分析_关于C罗“冲
- 下一篇: 远程教学,微信群里就能上课、培训