[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)
引子 · 真正的緣分都是在天上締結的 也許我們不在附中見面,也不再師大的林間相遇。 |
相關文章
- xshell安裝上傳下載檔案命令
- Netty接收HTTP檔案上傳及檔案下載NettyHTTP
- 檔案上傳下載
- JAVA檔案上傳下載Java
- springboot 檔案上傳下載Spring Boot
- 檔案上傳與下載
- MinIO上傳和下載檔案及檔案完整性校驗.
- Python介面自動化——檔案上傳/下載介面Python
- 檔案的上傳與下載
- 使用SecureCRT上傳下載檔案Securecrt
- minio檔案上傳與下載
- SpringMVC檔案上傳下載(單檔案、多檔案)SpringMVC
- 物件儲存服務MinIO安裝部署分散式及Spring Boot專案實現檔案上傳下載物件分散式Spring Boot
- 檔案上傳漏洞思路詳解
- 檔案上傳(解析)漏洞詳解
- centos7上安裝phantomjs並對頁面截圖CentOSJS
- 大檔案傳輸解決方案:分片上傳 / 下載限速
- spring cloud feign 檔案上傳和檔案下載SpringCloud
- Spring Boot 檔案上傳與下載Spring Boot
- xshell 使用 sftp上傳下載檔案FTP
- springcloud中feign檔案上傳、下載SpringGCCloud
- Feign實現檔案上傳下載
- java 上傳 下載檔案工具類Java
- 檔案下載上傳小工具
- 檔案上傳下載小工具
- Selenium4+Python3系列(九) - 上傳檔案及捲軸操作Python
- netty系列之:搭建HTTP上傳檔案伺服器NettyHTTP伺服器
- phantomjs安裝JS
- SpringMVC實現檔案上傳&下載(2)SpringMVC
- springboot 中檔案的上傳和下載Spring Boot
- Struts2的檔案上傳下載
- 檔案上傳/下載後臺程式碼
- 【liunx命令】上傳下載檔案的方法
- Koa2 之檔案上傳下載
- Linux伺服器上傳檔案傳送檔案Linux伺服器
- SpringBoot實現檔案上傳功能詳解Spring Boot
- Apache官網下載ant軟體包及安裝詳解Apache
- 詳解Linux(Centos)之安裝Nginx及注意事項LinuxCentOSNginx
- 精講RestTemplate第6篇-檔案上傳下載與大檔案流式下載REST