[CentOS Python系列] 二.pscp上傳下載伺服器檔案及phantomjs安裝詳解
從2014年開始,作者主要寫了三個Python系列文章,分別是基礎知識、網路爬蟲和資料分析。
- Python基礎知識系列:Pythonj基礎知識學習與提升
- Python網路爬蟲系列:Python爬蟲之Selenium+Phantomjs+CasperJS
- Python資料分析系列:知識圖譜、web資料探勘及NLP
它們都是基於Windows系統下的Python程式設計,每個系列都從安裝過程、基礎知識到實際應用三個方面進行講解,但在寫這些文章的時候,始終有兩個缺陷:一是沒有介紹Linux系統下的Python程式設計,並且所有程式碼使用的都是Python 2.7版本;另一方面是如何結合伺服器,真實的專案中,通常會將Python程式碼託管到伺服器中。
同時,隨著人工智慧和深度學習的風暴來臨,Python變得越來越火熱,作者也準備從零學習這些知識,寫相關文章。本篇文章是作者學習部署阿里雲伺服器 CentOS環境,講解pscp工具如何將Windows系統檔案上傳到雲伺服器中,同時將雲伺服器檔案下載到本地;同時教大家如何安裝phantomJS,它是一個無介面的瀏覽器,被廣泛應用於Selenium自動化測試和爬蟲中。
文章非常基礎,希望這系列文章對您有所幫助,如果有錯誤或不足之處,還請海涵。
一. pscp上傳下載檔案
首先在Windows系統中下載pscp工具(pscp.exe),將其放置於putty軟體目錄下,然後輸入Ctrl+R快捷鍵,開啟CMD命令列模式,輸入如下指令:
cd C:\Software\Programe Software\Putty
pscp ?
執行結果如下圖所示,可以檢視pscp命令的用法。
1.上傳檔案至雲伺服器
命令:pscp 本地檔案 使用者名稱@ip地址:遠端路徑
比如將本地中文字型檔案simsun.ttf上傳到伺服器中,呼叫指令為:
pscp C:\20180216\simsun.ttf root@39.107.105.166:/root/
將C盤20180216資料夾下的字型檔案上傳到伺服器使用者名稱為root的根目錄下,注意需要輸入伺服器密碼。
然後登陸雲伺服器,可以看到simsun.ttf檔案已經上傳。
2.下載檔案至Windows系統
命令:pscp 使用者名稱@ip地址:遠端路徑 Windows檔案路徑
比如將阿里雲伺服器中的HelloWorld.py檔案和test.py兩個檔案下載至本地C盤20180216資料夾,程式碼如下:
pscp root@39.107.105.166:/root/test.py C:\20180216
pscp root@39.107.105.166:/root/HelloWorld.py C:\20180216
Linux中cat命令用來檢視原始碼,rm命令用來刪除檔案(remove),如下圖所示:
在CMD中執行該命令,如下所示:
可以看到Windows系統C:\20180216資料夾下已經成功下載了該檔案,同時注意符號 \ 和 / 別寫錯。
3.上傳資料夾至雲伺服器
命令:pscp -r Windows資料夾 使用者名稱@ip地址:遠端路徑
其中“-r”表示向下遞迴目錄。現在需要將Windows系統的PhantomJS資料夾上傳到雲伺服器root目錄下,資料夾如下圖:
CMD命令列中輸入命令為:
pscp -r C:\phantomjs root@39.107.105.166:/root/
執行結果如下圖所示,可以在伺服器root目錄下看到phantomjs資料夾,幷包含各檔案。
4.下載資料夾至Windows系統
命令:pscp -r Windows資料夾 使用者名稱@ip地址:遠端路徑
將雲伺服器中“root/eastmount”資料夾及檔案下載至本地20180216資料夾,執行如下所示:
C:\Software\Program Software\Putty>pscp -r root@39.107.105.166:/root/eastmount C:\20180216\
root@39.107.105.166's password:
first.py | 0 kB | 0.1 kB/s | ETA: 00:00:00 | 100%
bsfirst.py | 0 kB | 0.3 kB/s | ETA: 00:00:00 | 100%
本地顯示結果如下圖所示:
講到這裡pscp基本用法已經講述結束,它主要用來Windows與Linux系統互動,但更多的可以線上下載安裝。作者這裡想上傳Phantomjs來執行程式碼,但總是報錯“Messag: phantomjs.exe executable may have wrong permissions.”。
下面詳細講解如何在Linux系統中下載Phantomjs並安裝。
二. Phantomjs安裝詳解
PhantomJS是一個伺服器端的 JavaScript API 的Webkit(開源的瀏覽器引擎)。其支援各種Web標準: DOM 處理, CSS 選擇器, JSON, Canvas 和 SVG。PhantomJS可以用於頁面自動化,網路監測,網頁截圖,以及無介面測試等。
PhantomJS is a headless WebKit scriptable with a JavaScript API. It has fast and native support for various web standards: DOM handling, CSS selector, JSON, Canvas, and SVG. Full web stack No browser required.
首先補充下yum和apt-get的區別,一般來說Linux系統基本分為兩大類:
- RedHat系列:RedHat、CentOS、Fedora等,常見安裝包格式命令為“rpm -引數”,包管理工具是yum,如“yum install xxx”,支援tar包。
- Debian系列:Debian、Ubuntu等,常見安裝包格式命令為“dpkg -引數”,包管理工具是apt-get,支援tar包。
當我們執行如下程式碼時,提示錯誤“-bash: phantomjs: command not found”,表示還未安裝該包。
phantomjs -v
yum install phantomjs
作者準備將Phantomjs安裝包下載至/root/eastmount資料夾下。
第一步 下載安裝包
wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-1.9.7-linux-x86_64.tar.bz2
第二步 解壓檔案
tar -xjvf phantomjs-1.9.7-linux-x86_64.tar.bz2
第三步 重新命名資料夾並移動至/usr/local/phantomjs目錄
mv phantomjs-1.9.7-linux-x86_64 /usr/local/phantomjs
第四步 建立連線,將可執行檔案放入系統路徑
去到“/usr/local/bin”資料夾下,可以看到此時還沒有Phantomjs連線,接下來需要建立連線。
ln -s /usr/local/phantomjs/bin/phantomjs /usr/bin/
ln -s /usr/local/phantomjs/bin/phantomjs /usr/local/bin/
建立連線過程如下所示:
建立後的連線,可以看到phantomjs已經放入了系統資料夾,我的理解該步驟相當於Windows系統下的配置環境變數PATH。
第五步 安裝依賴包
yum install fontconfig
yum install freetype2
第六步 檢驗Phantomjs是否安裝成功
phantomjs -v
可以看到我們安裝的版本為phantomjs 1.9.7。
三. Phantomjs基礎程式碼
下面簡單講解Phantomjs基礎程式碼,參考我的文章: 在Windows下安裝PhantomJS和CasperJS及入門介紹(上)
1.Hello World
首先我們在root資料夾下建立一個test.js檔案,命令如下:
ls
touch test.js --建立檔案
vim test.js --編輯檔案
test.js程式碼如下:
console.log("Hello CSDN!!!");
phantomjs.exit();
輸入“phantomjs test.js”執行程式碼輸出“Hello CSDN!!!”。
2.獲取網頁標題
建立baidu.js檔案,並編輯程式碼。
baidu.js程式碼:
var page = require('webpage').create();
page.open('http://www.baidu.com', function (status) {
var title = page.evaluate(function () {
return document.title;
});
console.log('Page title is ' + title);
phantom.exit();
});
輸出結果如下圖所示“百度一下,你就知道”。
3.簡單下載圖片
同樣的方法建立一個baidupic.js檔案,程式碼如下:
var page = require('webpage').create();
page.open('http://www.baidu.com', function () {
page.render('example.png');
phantom.exit();
});
輸出結果如下,可以看到“example.png”被下載至root目錄下。
同時在安裝過程中,您可能會遇到如下錯誤:
安裝phantomjs後輸入phantomjs --v提示:-bash:phantomjs:command not found
講到這篇文章就介紹結束了,本文的目的是為了後面的Selenium自動化測試及爬蟲操作,希望文章對您有所幫助,同時會繼續深入學習,包括爬蟲過程、定時爬蟲、資料庫操作、伺服器搭建等內容。狗年第一篇文章,祝大家新年快樂,娜我們就一起進步成長吧~
(By:Eastmount CSDN 秀璋 2018-02-17 深夜1點 http://blog.csdn.net/Eastmount)
引子 · 真正的緣分都是在天上締結的 也許我們不在附中見面,也不再師大的林間相遇。 |
相關文章
- centos上傳下載檔案CentOS
- xshell安裝上傳下載檔案命令
- Java Struts檔案上傳和下載詳解Java
- 從ftp上傳下載檔案(二)FTP
- nginx伺服器安裝及配置檔案詳解Nginx伺服器
- Nginx 伺服器安裝及配置檔案詳解Nginx伺服器
- Netty接收HTTP檔案上傳及檔案下載NettyHTTP
- 檔案上傳下載
- HTML5 進階系列:檔案上傳下載HTML
- 檔案上傳與下載
- JAVA檔案上傳下載Java
- Vertx 檔案上傳下載
- struts檔案上傳詳解
- Java實現上傳檔案到Oracle及從Oracle下載檔案JavaOracle
- 檔案的上傳與下載
- 檔案上傳和下載功能
- 使用SecureCRT上傳下載檔案Securecrt
- java上傳檔案跟批量下載檔案Java
- 大檔案傳輸解決方案:分片上傳 / 下載限速
- 檔案上傳(解析)漏洞詳解
- 檔案上傳漏洞思路詳解
- Python介面自動化——檔案上傳/下載介面Python
- MinIO上傳和下載檔案及檔案完整性校驗.
- Linux下掛載及解除安裝ISO檔案Linux
- Jsp+Servlet實現檔案上傳下載(一)--檔案上傳JSServlet
- SpringMVC檔案上傳下載(單檔案、多檔案)SpringMVC
- minio檔案上傳與下載
- springboot 檔案上傳下載Spring Boot
- 檔案上傳下載小工具
- java 上傳 下載檔案工具類Java
- 檔案下載上傳小工具
- spring webflux檔案上傳下載SpringWebUX
- iterm2上傳下載檔案
- 從ftp上傳下載檔案(一)FTP
- FileZilla 向伺服器傳檔案或下載檔案伺服器
- PHP實現檔案下載斷點續傳詳解PHP斷點
- python寫的FTP簡單上傳下載檔案薦PythonFTP
- [Python爬蟲] 在Windows下安裝PhantomJS和CasperJS及入門介紹(上)Python爬蟲WindowsJS