1. 程式人生 > >如何用阿里雲爬蟲?(超詳細地整理了全過程,全小白也能懂)

如何用阿里雲爬蟲?(超詳細地整理了全過程,全小白也能懂)

我是完全不懂Linux的小白。寫了爬蟲程式之後發現辣雞電腦老是會自動關機,因此不得不去用雲伺服器。接下來和大家講講買伺服器-安裝Python3-安裝各種module-爬蟲程式的修改-上傳爬蟲程式-執行爬蟲的全過程。爬蟲爬的是一個報紙網站的所有文章。

一、購買阿里雲伺服器

https://promotion.aliyun.com/ntms/campus2017.html

如果你是學生,買上面網址裡的這個學生套餐的輕量應用伺服器就可以了,9.5人民幣/月,非常實惠了。

購買完伺服器之後,開啟控制檯,找到左邊欄裡的“輕量應用伺服器”,就可以點開自己的伺服器了。點選右上角的“遠端連線”就可以正式開始為我們的伺服器修修補補,為執行爬蟲程式做準備了。

二、安裝Python3

接下來,我參考了兩位大神的指引(我誰都叫大神,因為是他們幫助我解決了問題):

https://blog.csdn.net/u012722531/article/details/79316180

和http://www.jb51.net/article/113980.htm

綜合了他們的步驟,以下進行安裝。我此時安裝的是Python-3.6.5:

#安裝python3.6.5
$ sudo mkdir /usr/local/python3 # 建立安裝目錄
$ wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz #下載原始檔
$ tar -xzvf Python-3.6.5.tgz # 解壓縮包
$ cd Python-3.6.5 # 進入解壓目錄
#編譯安裝
$ sudo ./configure --prefix=/usr/local/python3 # 指定建立的目錄
$ sudo make
$ sudo make install

#配置2個版本共存
$ sudo ln -s /usr/local/python3/bin/python3 /usr/bin/python3 #建立 python3 的軟連結,這樣就可以通過 python 命令使用 Python 2,python3 來使用 Python 3。
配置共存之後,要注意:以後執行python程式的時候,如果程式是用Python3寫的,就要寫
python3 yourpython.py
如果是用Python2寫的,就是
python yourpython.py

三、安裝各種爬蟲需要的Module

1、安裝pip

這裡問題就開始多起來了。也是我寫這篇blog的最大原因,這裡出的問題太多了,因為Python2和Python3的不相容,以及阿里雲伺服器裡的module太特麼少了,導致經常出error。希望下面的部分能讓大家順利解決問題。

想直接安裝pip?沒那麼容易,你很快就會發現它會出一個缺少setuptools的錯誤,所以我們要先裝setuptools。

想直接安裝setuptools?沒那麼容易,你很快就會發現它會出一個“compression requires the missing zlib module”的錯。所以,我們要先裝zlib。

想要直接裝zlib?沒那麼容易,你很快又會發現它會出一個“使用yum命令報錯File "/usr/bin/yum", line 30 except KeyboardInterrupt, e:”的錯。所以,我們要先把yum的bug解決。

所以接下來,我們的順序就是搞定yum-安裝zlib-安裝setuptools-安裝pip

(1)解決yum裡Python2和Python3矛盾的bug

這裡參考的大神是:https://blog.csdn.net/zsl10/article/details/52315319

“問題出現原因: yum包管理是使用python2.x寫的,將python2.x升級到python3.1.3以後,由於python版本語法相容性導致問題出現

解決辦法:

修改yum配置檔案,將python版本指向以前的舊版本

# vi /usr/bin/yum
把第一行改成#!/usr/bin/python2.7 

附:vi模式的編輯與退出編輯模式的方法。

進入編輯(insert)模式:按i鍵

儲存並退出編輯模式:先按Esc鍵,再按Shift+zz(就是按著Shift鍵,按兩下z鍵,就可以了)

②修改urlgrabber-ext-down檔案,更改python版本

# vi /usr/libexec/urlgrabber-ext-down
把第一行改成#!/usr/bin/python2.7

接下來就可以繼續裝zlib了

(2)裝zlib

yum install zlib

然後,要重新去編譯一遍Python-3.6.5,make,make install。

cd Python-3.6.5 # 進入解壓目錄
#編譯安裝
$ sudo ./configure --prefix=/usr/local/python3 # 指定建立的目錄
$ sudo make
$ sudo make install

這樣子才能讓zlib發揮作用。不然還是會出錯。同樣的,如果你發現接下來安裝任何東西之後還是不能用,那就再編譯安裝。

(3)安裝setuptools-39.1.0

# wget https://files.pythonhosted.org/packages/a6/5b/f399fcffb9128d642387133dc3aa9bb81f127b949cd4d9f63e5602ad1d71/setuptools-39.1.0.zip
# unzip setuptools-39.1.0.zip
# cd setuptools-39.1.0
# python setup.py install

(4)安裝pip

終於可以安裝pip啦!

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py

2、安裝爬蟲需要的module

我是在上傳了爬蟲程式之後才發現不能import requests等等庫的。然後又發現pip不行了所以才需要重新安裝pip。

我爬蟲用了requests、BeautifulSoup4、pandas庫。

pip install requests
pip install BeautifulSoup4
pip install pandas

搞定!

三、修改爬蟲中的輸出資料夾

我的爬蟲原檔案裡,所有的儲存都是\,還有什麼“D:\”,這些在Linux通通要改。

儲存的file名字就是“/yourfile/your.txt”之類的,開頭一定要有/。

四、上傳爬蟲程式

五、執行爬蟲程式

nohup python3 -u yourpython.py > log.out & 

還記得要用python3嗎?記住噢!

大神說,“這裡,> log.out 表示將控制檯輸出輸出到log.out檔案中
-u選項表示每多一條資訊就實時輸出到log.out中,而不是全部輸出完畢再輸出

&符號表示在後臺執行,執行時可以檢視日誌或者執行”

之後,就可以從log.out檔案看輸出的東西了。我自己是直接用xftp看。

————————————————————————————————

希望對大家有幫助啦!也感謝諸位無私分享的大神!