从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
同时,执行“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
如下图所示:
解压后调用“ls”命令查看eastmount文件夹,包含了已经解压的phantomjs-1.9.7-linux-x86_64文件夹。

第三步 重命名文件夹并移动至/usr/local/phantomjs目录

mv phantomjs-1.9.7-linux-x86_64 /usr/local/phantomjs
调用“cd /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)

引子 · 真正的缘分都是在天上缔结的
                    By: Eastmount

也许我们不在附中见面,也不再师大的林间相遇。
        隔三年,也会在遵义支教的教室认识,
        如果不在遵义的教室认识,你的学生也并未成为我的学生。
        隔七年,也一定会在上海、南京、苏州邂逅,
        秀璋沿着娜娜的足迹,紧紧跟随,
        你在前,我在后,你在奔跑,我在漫步。
        如果七年之中,我们都只是擦肩而过,我只能沿着你的足迹不断追寻。
        隔了九年,也一定会........在贵阳认识。
        总之,你的教书梦我来完成,我的低情商你来弥补。
        可是如果那样,我们都已经老了啊!
        老了......也很美。
        丘比特的这支箭,是奇幻的一箭,
        灵魂的伴侣终究还是走在了一起。
        果真,再高的情商都抵不过淳朴,再富裕的人生都比不了温馨。
        是啊!璋与娜的缘分早已在天上缔结,这便是所谓的命中注定吧!

[CentOS Python系列] 二.pscp上传下载服务器文件及phantomjs安装详解相关推荐

  1. [CentOS Python系列] 六.阿里云搭建Django网站详解

    本篇文章主要介绍讲述部署阿里云服务器Django网站环境,并通过IP地址访问网页的过程.写代码过程中往往第一步需要解决的就是配置开发环境,对于新手来说,这是非常头疼的事情,而当配置好之后或者对于老手来 ...

  2. [CentOS Python系列] 四.阿里云服务器CentOS连接远程MySQL数据库及pymsql

    从2014年开始,作者主要写了三个Python系列文章,分别是基础知识.网络爬虫和数据分析. Python基础知识系列:Pythonj基础知识学习与提升 Python网络爬虫系列:Python爬虫之S ...

  3. [CentOS Python系列] 三.阿里云MySQL数据库开启配置及SQL语句基础知识

    从2014年开始,作者主要写了三个Python系列文章,分别是基础知识.网络爬虫和数据分析. Python基础知识系列:Pythonj基础知识学习与提升 Python网络爬虫系列:Python爬虫之S ...

  4. [CentOS Python系列] 五.阿里云部署web环境及通过IP地址访问服务器网页

    假设我们服务器CentOS系统已经部署好了,现在我们需要向服务器上传一个HTML主页,通过IP地址展示我们的内容,如何实现呢?本篇文章主要介绍讲述部署阿里云服务器web环境,并通过IP地址访问网页的过 ...

  5. springboot文件上传下载实战 ——文件上传、下载、在线打开、删除

    springboot文件上传下载实战 文件上传 文件上传核心 UserFileController 文件上传测试 文件下载与在线打开 文件下载.在线打开核心 UserFileController 文件 ...

  6. YDOOK: Sanic: Python request post请求 上传照片或文件 详细具体步骤 亲测可用!

    YDOOK: Sanic: Python request post请求 上传照片或文件 详细具体步骤 亲测可用! ©YDOOK JYLin 1. 项目目录架构: Upload result: 上传结果 ...

  7. SAE上传web应用(包括使用数据库)教程详解及问题解惑

    2019独角兽企业重金招聘Python工程师标准>>> 转自:http://blog.csdn.net/baiyuliang2013/article/details/24725995 ...

  8. 怎么上传ftp服务器文件,ftp服务器如何上传本地文件

    ftp服务器如何上传本地文件 内容精选 换一换 在本地主机和Windows弹性云服务器上分别安装QQ.exe等工具进行数据传输.使用远程桌面连接mstsc方式进行数据传输.该方式不支持断点续传,可能存 ...

  9. 往服务器上传文件的软件,上传云服务器文件的软件

    上传云服务器文件的软件 内容精选 换一换 若用户私钥泄露,用户可通过管理控制台使用新的密钥对替换弹性云服务器内的公钥,替换完成后,用户需要使用本地保存的新密钥对的私钥登录该弹性云服务器,无法使用替换前 ...

最新文章

  1. Design Pattern - Mediator(C#)
  2. 原来程序员在某个圈子还是蛮吃香的嘛~
  3. 阿里云马劲:保证云产品持续拥有稳定性的实践和思考\n
  4. 计算机网络:单播,多播
  5. Leetcode1711. 大餐计数[C++题解]:哈希表和枚举
  6. Spring Boot实现监控linux-cpu和内存使用情况,并发送邮件
  7. 快速解读linq语法
  8. php imagemagick 漏洞,ImageMagick漏洞(CVE-2016-3714)修复方案
  9. 白领夫妇白手起家 6年赚得两房两车
  10. DE16 Continuation: More General Periods
  11. Smart3D系列教程5之 《案例实战演练2——大区域的地形三维重建》
  12. TCP之 select模型
  13. 大学一级计算机字处理模拟题,大学计算机一级模拟操作题2
  14. 键盘驱动程序设计(中)
  15. Unity3D 唤醒微信 打开微信(非微信登录、微信分享)
  16. Invoke 和 BeginInvoke 的真正涵义
  17. Vim中的常用命令总结(持续补充完善)
  18. Eclipse汉化教程(详细图解)
  19. 贴吧引流效果怎么样?当机会来了你在做什么?
  20. 华为笔试编程题01(2020春招OD)

热门文章

  1. 分布式智能微电网的建设方案与应用场景
  2. C++实现MD5摘要算法加盐salt值
  3. 计算机技术与软件专业技术资格有哪些?
  4. GD32F405RGT6定时器固件库(所有定时器的配置(12个))
  5. 程序是为了让人更省事
  6. js实现pdf文件查看
  7. 计算机辅助模拟系统 颌面,计算机辅助正颌外科手术的预测和模拟系统—颅颌面硬组织的三维重建...
  8. 如何安装python
  9. 用python演奏歌曲
  10. 新来的23岁Java开发上来秀了波操作,真是扮猪吃老虎