歡迎大家前往騰訊雲+社群,獲取更多騰訊海量技術實踐乾貨哦~
騰訊雲提供了開發者實驗室教你搭建 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),第一時間獲取更多海量技術實踐乾貨哦~