Python/Linux

 2017-08-10 21:29:58 |  0 Comments

歪门邪道之Selenium爬虫自动化监控

最近有个小需求,得一直监控第三方的状态什么的,以前在这个岗位上的人都是用人工。我实在是不想做这种重复劳动,就想着写个脚本什么把这玩意自动化吧。

最近一直在做这个,先说说主要功能:
1.自动从第三方获取信息(每天一次)并发送当天的具体状态邮件给我(做了简单判断)

2.从MySql读取监控数据并确认当前服务器正常。

3.部署在服务器上,每天8点运行,出错时报错。

还要啥功能?足够了啊!这就省了一个这项工作80%的时间了....别问我为啥不用SHELL

至于用什么来写?人家第三方又不会给你提供接口查询,当然得上爬虫了!Scarpy太重而且某些小地方处理的不够好(当然最重要的是我不够熟悉)于是我请出了自动化测试用的Selenium...

主要涉及到的模块碰到的问题:

1.time\sys\re

这个东西虽然不大,但是操作还是不少的。用time读取时间,Sys做Win层面的操作,re匹配正则表达式——当然,最开始是想不到要加这个的....

2.Json\验证码识别\PIL

这个其实说起来很无奈,有一个第三方网站有验证码登录。然后我想了很多办法,包括但不限于:
传统本地图像识别(先截图,再二值化,用的那个验证码识别包),这个方法很麻烦很复杂,最气的是最后效果还不好,失败。
将验证码截图后随邮件发过来然后回邮件过去。然后后来一想,这么做也太SB了,这还是自动化吗....失败

最终我还是放弃治疗,老老实实找了第三方——一分钱一条,便宜的令我惊叹。

然后就是没什么故事的故事了:Selenium截图——PIL切图——切了的图发HTTP请求发给第三方——接受回来的JSON——JSON转字符串——填字符串——Selenium流程继续走。

总的来说结局还不错,不是吗?

3.发邮件

这个说起来简直简单爆炸,但是我毕竟新司机上路智商又不高,只能摸着石头过河了。主要问题在于像是邮件和图片一起发这种

 2017-08-10 21:29:58 |  0 Comments

Linux Alias

Linux实战-让你的效率插上翅膀—Linux Alias

相信有不少朋友有不错的Linux基础,肯定比我这个半桶水强很多,我就不献丑一些最基础的基本操作了。但是,你碰到过以下场景吗?

1.命令太长,记不住。

2.命令不顺手。

3.大量重复操作,烦不胜烦。

4.我昨天打的那个命令是怎么写的来着?

不要和我提jekins,用了jekins就不用你重复做这些了?咱还是别自欺欺人人了。怎么解决?其实不用第三方工具,Linux自带了提升效率的好帮手——Linux Alias.

Level0:什么是Linux Alias?

先别急着百度什么是Linux Alias——当然,你也百度不到。为啥?因为我早就百度过了....只需要理解,Alias的意思就是别名。什么是别名?达芬奇的全名是

  1. 列昂纳多·迪·塞尔·皮耶罗·达·芬奇

但是你会每次都称呼他的全名吗?不会。你会称呼他为

  1. 达·芬奇

这就是别名。假如我每天早上要达芬奇给我带个煎饼果子,那么就应该写成

  1. if 新的一天开始了
  2. then 列昂纳多·迪·塞尔·皮耶罗·达·芬奇 带个煎饼果子

如果使用别名呢?我们把这一条可以简单封装为:

  1. 达芬奇 煎饼果子

嗯,我相信这已经是真正的0基础入门了!你已经理解什么是alias了。

Level1:如何设置Alias?

首先,我并不建议也没有尝试过设置全局的alias,所以在这里只说当前用户配置:

  1. cd ~
  2. vi /.bashrc

这个.bashrc保存个性化设置的文件,Alias就写在这里。或者你也有可能已经有.bashrc文件了,那去掉斜杠就可以了。格式为:

  1. alias [别名]=[指令名称]

当然,Alias也可以设置函数,甚至Shell命令,这还是看你自己的需求。
下面我举几个实际应用的例子:

Level2:Selinux 临时开关

这个应该是大家Linux用的非常最频繁的命令了吧。每当配一个服务器被Selinux弄的烦不胜烦的时候,我相信大家都会百度 Selinux 关闭的命令。百度之我们可以得到:

临时关闭:

Title - Artist
0:00