1. 程式人生 > >Python3網路爬蟲工具安裝(Mac)

Python3網路爬蟲工具安裝(Mac)

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