Python3網路爬蟲工具安裝(Mac)
阿新 • • 發佈:2019-01-13
Python3網路爬蟲工具安裝(Mac)
以下都是基於 Python3
爬蟲:抓取頁面 -> 分析頁面 -> 儲存資料
請求庫的安裝
- Homebrew 安裝
Mac下的包管理工具
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- Python3 安裝
# Python3 & pip3 一起安裝
brew install python3
- requests 安裝
第三方庫,Python不會自帶這個庫
pip3 install requests
- Selenium 安裝
自動化測試工具,驅動瀏覽器執行特定的動作
pip3 install selenium
- ChromeDriver 安裝
自動化測試工具,配置瀏覽器使用
# 檢視 chrome 版本以及對應的 chromedriver 版本
http://chromedriver.chromium.org/downloads
# 配置環境變數
sudo mv chromedriver /usr/local/bin
vim ~/.bash_profile
export PATH=/usr/local/bin:$PATH
# 使環境變數生效
source ~/.bash_profile
- aiohttp 安裝
requests 是一個 阻塞式 HTTP 請求庫 ,發出一個請求後,程式會一直等待伺服器響應,直到得到響應後,才會進行下一步處理。
一個::非同步 Web 服務::的庫,非同步操作可以藉助 async/await 關鍵字,使寫法更簡潔。
使用場景:維護一個代理池時,利用非同步方式檢測大量代理的執行狀況,會極大地提升效率。
pip3 install aiohttp
# 官方還推薦安裝以下兩個庫:cchardet(字元編碼檢測庫)、aiodns(加速 DNS 的解析庫)
pip3 install cchardet aiodns
解析庫的安裝
- lxml 安裝
Beautiful Soup、Scrapy 框架都需要用到此庫。
pip3 install lxml
# 如果產生錯誤,需要先執行以下命令
xcode-select --install
- Beautiful Soup 安裝
pip3 install beautifulsoup4
# 注意匯入的時候
from bs4 import BeautifulSoup
- pyquery 安裝
pip3 install pyquery
- tesserocr 安裝
爬蟲遇到::驗證碼::時,可以直接使用 OCR 來識別。(OCR:光學字元識別)
brew install imagemagick
brew install tesseract --all-languages
pip3 install tesserocr pillow
資料庫的安裝
- MySQL 安裝
輕量級關係型資料庫
brew install mysql
sudo mysql.server start
sudo mysql.server stop
sudo mysql.server restart
- MongoDB 安裝
C++ 編寫的非關係型資料庫,基於分散式檔案儲存。
brew install mongodb
brew services start mongodb
sudo mongod
brew services stop mongodb
brew services restart mongodb
-
Mongo視覺化工具
RoboMongo/Robo 3T 、Studio 3T -
Redis 安裝
基於::記憶體::的高效的非關係型資料庫
brew install redis
brew services start redis
redis-server /usr/local/etc/redis.conf
brew services stop redis
brew services restart redis
儲存庫的安裝
- PyMySQL 安裝
為了 Python 與 MySQL 進行互動
pip3 install pymysql
- PyMongo 安裝
為了 Python 與 MongoDB 進行互動
pip3 install pymongo
- redis-py 安裝
為了 Python 與 redis 進行互動
pip3 install redis
- RedisDump 安裝
用於 Redis 資料匯入/匯出的工具,基於 Ruby 實現的。
# 需要先安裝 Ruby
brew install ruby
gem install redis-dump
Web 庫的安裝
- Flask 安裝
輕量級的 Web 服務程式
pip3 install flask
- Tornado 安裝
支援非同步的 Web 框架,通過使用非阻塞 I/O 流,可以支撐成千上萬的開發連線,效率非常高。
pip3 install tornado
App 爬取相關庫的安裝
web 網頁資料一般是通過請求伺服器的介面來獲取的,但對於 APP 主要使用一些抓包技術來抓取資料。
抓包工具:
Charles & mitmproxy:簡單的介面
mitmdump:複雜的介面,對抓取的請求和響應進行實時處理和儲存
Appium:像 selenium 一樣對 APP 進行自動化控制。
-
Charles 安裝
略 -
mitmproxy 安裝
略 -
Appium 安裝
# 安裝 node.js
brew install node.js
# 安裝 appium
npm install -g appium
爬蟲框架的安裝
requests、selenium 庫中的元件是可以複用的,抽離出來,將各個功能模組化,就慢慢形成了爬蟲框架。
- pyspider 安裝
pip3 install pyspider
# Python3.7 把 async 當作關鍵之,所以需要修改 pyspider 原始碼中的 aynsc 欄位名
pyspider all # 啟動
# 訪問 http://localhost:5000/
# 如果安裝異常,請先執行以下程式碼
xcode-select --install
sudo xcode-select -switch /
- Scrapy 安裝
pip3 install Scrapy
scrapy
- Scrapy-Splash 安裝
Scrapy 中支援 JavaScript 渲染的工具、使用 Splash 的 HTTP API 進行頁面渲染
# 安裝 docker
brew cask install docker
# 安裝 splash
docker run -p 8050:8050 scrapinghub/splash # -d 引數:以守護態執行
pip3 install scrapy-splash
- Scrapy-Redis 安裝
scrapy 的分散式擴充套件模組
pip3 install scrapy-redis
部署相關庫的安裝
大規模抓取資料的時候,一定會用到分散式爬蟲:將一份程式碼,同時部署到多臺主機上來協同執行。
方式一:Scrapyd、Scrapyd-Client、Scrapyd API
方式二:docker 叢集部署
- Docker 安裝
一種容器技術,將應用和環境等進行打包,形成一個獨立的”應用”。
brew cask install docker
sudo docker run hello-world
映象加速
預設是從國外的 Docker Hub 下載的,當然可以使用國內的映象來加速下載
- Scrapyd 安裝
一個用於部署和執行 Scrapy 專案的工具
pip3 install scrapyd
- Scrapyd-Client 安裝
將 Scrapyd 程式碼部署到遠端 Scrapyd 時,首先將程式碼打包為 EGG 檔案,然後需要將 EGG 檔案上傳到遠端主機。Scrapyd-Client 已經實現了這些功能。
pip3 install scrapyd-client
scrapyd-deploy -h
- Scrapyd API 安裝
安裝好 Scrapyd 之後,可以直接請求它提供的 API 來獲取當前主機的 Scrapyd 任務執行狀況。
pip3 install python-scrapyd-api
- Scrapyrt 安裝
為 Scrapy 提供了一個排程的 HTTP 介面,可以直接請求 HTTP 介面來排程 Scrapy 任務。如果不需要分散式多工的話,可以簡單的使用 Scrapyrt 實現遠端 Scrapy 任務的排程
pip3 install scrapyrt
# 在任意一個 Scrapy 專案中,執行以下命令來啟動 HTTP 服務
scrapyrt
# 或者 Docker 啟動:執行在 9080 埠,且本地 Scrapy 專案的路徑為 : /home/quotesbot
docker run -p 9080:9080 -tid -v /home/user/quotesbot:/scrapyrt/poject scrapinghub/scrapyrt
- Gerapy 安裝
一個 Scrapy 分散式管理模組
pip3 install gerapy