學會了這項技能,你就能獲得任何想要的資訊!

騰訊雲加社群發表於2018-08-22

歡迎大家前往騰訊雲+社群,獲取更多騰訊海量技術實踐乾貨哦~

本文由騰訊雲實驗室發表於雲+社群專欄

騰訊雲提供了開發者實驗室教你搭建 PySpider 爬蟲服務,教程內容如下,使用者可以點選開發者實驗室快速上機完成實驗。

環境準備

任務時間:5min ~ 10min

前置環境部署

在開始部署前,我們需要做一些前置準備。

yum 更新

yum update -y
複製程式碼

安裝開發編譯工具

yum install gcc gcc-c++ -y
複製程式碼

安裝依賴庫

yum install python-pip python-devel python-distribute libxml2 libxml2-devel python-lxml libxslt libxslt-devel openssl openssl-devel -y
複製程式碼

升級pip

pip install --upgrade pip
複製程式碼

該步驟可選,但為了部署的穩定性,推薦執行

該步驟耗時可能較長(5~10min),請耐心等待

部署 mariadb

任務時間:10min ~ 20min

由於 CentOS 7 中 MySQL 資料庫已從預設的程式列表中移除,我們使用 mariadb 代替。

安裝 mariadb

yum install mariadb-server mariadb -y
複製程式碼

啟動 mariadb 服務

systemctl start mariadb
複製程式碼

設定 root 密碼

預設的root使用者密碼為空,你可以使用以下命令來建立 root 使用者的密碼:

(該步驟也可以跳過,password 後的 Password 可以改為任何你希望設定的密碼)

mysqladmin -u root password "Password"
複製程式碼

檢查是否安裝成功

現在你可以嘗試通過以下命令來連線到 Mysql 伺服器

mysql -u root -p
複製程式碼

然後輸入您剛才設定的密碼 ( 預設:Password ),如果一切正常,您應該可以在命令列看到以 MariaDB [(none)]>mysql> 開頭的提示了,說明連線成功。

此時輸入 SHOW DATABASES; 並回車,應該可以看到類似下面這樣的輸出,說明一切正常。

mysql> SHOW DATABASES;
+----------+
| Database |
+----------+
| mysql    |
| test     |
+----------+
2 rows in set (0.13 sec)
複製程式碼

完成後,可以通過快捷鍵 Ctrl+C 或命令列鍵入 exit 來退出,進入下一步。

如果您未設定密碼,直接使用 mysql 即可

部署 redis

任務時間:10min ~ 20min

下載、解壓安裝包

下載安裝包

wget http://download.redis.io/redis-stable.tar.gz
複製程式碼

解壓安裝包

tar -xzvf redis-stable.tar.gz
複製程式碼

移動解壓包到 /usr/local 內

mv redis-stable /usr/local/redis
複製程式碼

編譯安裝

cd /usr/local/redis
make
make install
複製程式碼

設定 redis 配置

設定配置檔案路徑

mkdir -p /etc/redis
cp /usr/local/redis/redis.conf /etc/redis/redis.conf
複製程式碼

修改 /etc/redis/redis.conf 檔案的 daemonize 配置項為如下:

daemonize yes
複製程式碼

啟動 redis 服務

/usr/local/bin/redis-server /etc/redis/redis.conf
複製程式碼

部署 pyspider

任務時間:10min ~ 20min

安裝依賴

pip install --upgrade chardet
easy_install mysql-connector==2.1.3
easy_install redis
複製程式碼

安裝 pyspider

pip install pyspider
複製程式碼

配置 pyspider

首先建立配置目錄

mkdir /etc/pyspider
複製程式碼

然後 /etc/pyspider 目錄下建立 pyspider.conf.json,參考下面的內容。

具體配置的說明文件請參考 官方文件

示例程式碼:/etc/pyspider/pyspider.conf.json
{
  "taskdb": "mysql+taskdb://root:Password@127.0.0.1:3306/taskdb",
  "projectdb": "mysql+projectdb://root:Password@127.0.0.1:3306/projectdb",
  "resultdb": "mysql+resultdb://root:Password@127.0.0.1:3306/resultdb",
  "message_queue": "redis://127.0.0.1:6379/db",
  "webui": {
    "username": "root",
    "password": "Password",
    "need-auth": true
  }
}
複製程式碼

其中 mysql 配置中的 root 為您 mysql 的使用者名稱, root: 後面的 Password 為您剛設定的密碼。

webui 配置中的 username 及 password 為您訪問 WebUI 時候需要的使用者名稱,你也可以不設定使用者名稱密碼,直接將 need-auth 設為 false 即可。

啟動服務

pyspider -c /etc/pyspider/pyspider.conf.json
複製程式碼

如果一切正常,現在訪問 http://<您的 CVM IP 地址>:5000,您應該可以看到 pyspider dashboard 的首頁了。

服務能夠正常啟動後,我們需要讓它能夠在後臺執行,您可以通過以下命令讓服務在後臺執行

nohup pyspider -c /etc/pyspider/pyspider.conf.json &
複製程式碼

也可以使用官方推薦的 Supervisor 來啟動,這裡就不詳細介紹了,具體用法可以參考 Supervisor 的文件

部署完成

任務時間:1min ~ 2min

訪問服務

此時您可以訪問 http://<您的 CVM IP 地址>:5000 使用您的爬蟲來蒐集資料了,具體 pyspider 爬蟲指令碼的編寫及使用教程可以參考 網上資料

問答 BeautifulSoup和Scrapy爬蟲之間的區別? 相關閱讀 騰訊雲資料庫回檔解決方案 大資料在教育行業的研究與應用 看看上下文對映的清晰檢視 雲學院 · 課程推薦 | 知乎KOL,與你分享機器學習中如何做選擇

**此文已由作者授權騰訊雲+社群釋出,原文連結:cloud.tencent.com/developer/a… **

歡迎大家前往騰訊雲+社群或關注雲加社群微信公眾號(QcloudCommunity),第一時間獲取更多海量技術實踐乾貨哦~

相關文章