专栏名称: 马哥Linux运维
马哥linux致力于linux运维培训,连续多年排名第一,订阅者可免费获得学习机会和相关Linux独家实战资料!
目录
相关文章推荐
51好读  ›  专栏  ›  马哥Linux运维

玩这么久 Python ,这些好玩又实用的库一定不能错过!

马哥Linux运维  · 公众号  · 运维  · 2018-01-20 08:00

正文


图片处理


pip install pillow

from PIL import Image

import numpy as np

a = np . array ( Image . open ( 'test.jpg' ))

b = [ 255 , 255 , 255 ] - a

im = Image . fromarray ( b . astype ( 'uint8' ))

im . save ( 'new.jpg' )


youtube-dl下载国外视频


pip install youtube - dl #直接安装youtube-dl

pip install - U youtube - dl #安装youtube-dl并更新

youtube - dl "http://www.youtube.com/watch?v=-wNyEUrxzFU"


查看对象的全部属性和方法


pip install pdir2

>>> import pdir , requests

>>> pdir ( requests )

module attribute :

__cached__ , __file__ , __loader__ , __name__ , __package__ , __path__ , __spec__

other :

__author__ , __build__ , __builtins__ , __copyright__ , __license__ , __title__ ,

__version__ , _internal_utils , adapters , api , auth , certs , codes , compat , cookies

, exceptions , hooks , logging , models , packages , pyopenssl , sessions , status _ code

s , structures , utils , warnings

special attribute :

__doc__

class :

NullHandler : This handler does nothing . It ' s intended to be used to avoid th

e

PreparedRequest : The fully mutable : class : ` PreparedRequest < PreparedRequest >

` object ,

Request : A user - created : class : ` Request < Request > ` object .

Response : The : class : ` Response < Response > ` object , which contains a

Session : A Requests session .

exception :

ConnectTimeout : The request timed out while trying to connect to the remote

server .

ConnectionError : A Connection error occurred .

DependencyWarning : Warned when an attempt is made to import a module with mi

ssing optional

FileModeWarning : A file was opened in text mode , but Requests determined its

binary length .

HTTPError : An HTTP error occurred .

ReadTimeout : The server did not send any data in the allotted amount of time

.

RequestException : There was an ambiguous exception that occurred while handl

ing your

Timeout : The request timed out .

TooManyRedirects : Too many redirects .

URLRequired : A valid URL is required to make a request .

function :

delete : Sends a DELETE request .

get : Sends a GET request .

head : Sends a HEAD request .

options : Sends a OPTIONS request .

patch : Sends a PATCH request .

post : Sends a POST request .

put : Sends a PUT request .

request : Constructs and sends a : class : ` Request < Request > `.

session : Returns a : class : ` Session ` for context - management .


Python 玩转网易云音乐


pip install ncmbot

import ncmbot

#登录

bot = ncmbot . login ( phone = 'xxx' , password = 'yyy' )

bot . content # bot.json()

#获取用户歌单

ncmbot . user_play_list ( uid = '36554272' )


下载视频字幕


pip install getsub



Python 财经数据接口包


pip install tushare

import tushare as ts

#一次性获取最近一个日交易日所有股票的交易数据

ts . get_today_all ()

代码,名称,涨跌幅,现价,开盘价,最高价,最低价,最日收盘价,成交量,换手率

code name     changepercent  trade   open high    low settlement

0 002738 中矿资源 10.023 19.32 19.32 19.32 19.32 17.56

1 300410 正业科技 10.022 25.03 25.03 25.03 25.03 22.75

2 002736 国信证券 10.013 16.37 16.37 16.37 16.37 14.88

3 300412 迦南科技 10.010 31.54 31.54 31.54 31.54 28.67

4 300411 金盾股份 10.007 29.68 29.68 29.68 29.68 26.98

5 603636 南威软件 10.006 38.15 38.15 38.15 38.15 34.68

6 002664 信质电机 10.004 30.68 29.00 30.68 28.30 27.89

7 300367 东方网力 10.004 86.76 78.00 86.76 77.87 78.87

8 601299 中国北车 10.000 11.44 11.44 11.44 11.29 10.40

9 601880 大连港 10.000 5.72 5.34 5.72 5.22 5.20

10 000856 冀东装备 10.000 8.91 8.18 8.91 8.18 8.10


开源漏洞靶场


# 安装pip

curl - s https :// bootstrap . pypa . io / get - pip . py | python3

# 安装docker

apt - get update && apt - get install docker . io

# 启动docker服务

service docker start

# 安装compose

pip install docker - compose

# 拉取项目

git clone git @ github . com : phith0n / vulhub . git

cd vulhub

# 进入某一个漏洞/环境的目录

cd nginx_php5_mysql

# 自动化编译环境

docker - compose build

# 启动整个环境

docker - compose up - d

#测试完成后,删除整个环境

docker - compose down


北京实时公交


pip install - r requirements . txt 安装依赖

python manage . py build _ cache 获取离线数据,建立本地缓存

#项目自带了一个终端中的查询工具作为例子,运行: python manage.py cli

>>> from beijing_bus import BeijingBus

>>> lines = BeijingBus . get_all_lines ()

>>> lines

[ < Line : 运通 122 ( 农业展览馆 - 华纺易城公交场站 ) > , < Line : 运通 101 ( 广顺南大街北口 - 蓝龙家园 ) > , ...]

>>> lines = BeijingBus . search_lines ( '847' )

>>> lines

[ < Line : 847 ( 马甸桥西 - 雷庄村 ) > , < Line : 847 ( 雷庄村 - 马甸桥西 ) > ]

>>> line = lines [ 0 ]

>>> print line . id , line . name

541 847 ( 马甸桥西 - 雷庄村 )

>>> line . stations

[ < Station 马甸桥西 > , < Station 马甸桥东 > , < Station 安华桥西 > , ...]

>>> station = line . stations [ 0 ]

>>> print station . name , station . lat , station . lon

马甸桥西 39.967721 116.372921

>>> line . get_realtime_data ( 1 ) # 参数为站点的序号,从1开始

[

{

'id' : 公交车 id ,

'lat' : 公交车的位置 ,

'lon' : 公交车位置 ,

'next_station_name' : 下一站的名字 ,

'next_station_num' : 下一站的序号 ,

'next_station_distance' : 离下一站的距离 ,

'next_station_arriving_time' : 预计到达下一站的时间 ,

'station_distance' : 离本站的距离 ,

'station_arriving_time' : 预计到达本站的时间 ,

},

...

]


文章提取器


git clone https :// github . com / grangier / python - goose . git

cd python - goose

pip install - r requirements . txt

python setup . py install

>>> from goose import Goose

>>> from goose . text import StopWordsChinese

>>> url = 'http://www.bbc.co.uk/zhongwen/simp/chinese_news/2012/12/121210_hongkong_politics.shtml'

>>> g = Goose ({ 'stopwords_class' : StopWordsChinese })

>>> article = g . extract ( url = url )

>>> print article . cleaned_text [ : 150 ]

香港行政长官梁振英在各方压力下就其大宅的违章建筑(僭建)问题到立法会接受质询,并向香港民众道歉。

梁振英在星期二( 12 10 日)的答问大会开始之际在其演说中道歉,但强调他在违章建筑问题上没有隐瞒的意图和动机。

一些亲北京阵营议员欢迎梁振英道歉,且认为应能获得香港民众接受,但这些议员也质问梁振英有


Python 艺术二维码生成器


pip  install  MyQR

myqr https :// github . com

myqr https :// github . com - v 10 - l Q



伪装浏览器身份


pip install fake - useragent

from fake_useragent import UserAgent

ua = UserAgent ()

ua . ie

# Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US);

ua . msie

# Mozilla/5.0 (compatible; MSIE 10.0; Macintosh; Intel Mac OS X 10_7_3; Trident/6.0)'

ua [ 'Internet Explorer' ]

# Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; GTB7.4; InfoPath.2; SV1; .NET CLR 3.3.69573; WOW64; en-US)

ua . opera

# Opera/9.80 (X11; Linux i686; U; ru) Presto/2.8.131 Version/11.11

ua . chrome

# Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.2 (KHTML, like Gecko) Chrome/22.0.1216.0 Safari/537.2'


美化 curl


pip install httpstat

httpstat httpbin . org / get



python shell


pip install sh

from sh import ifconfig

print ifconfig ( "eth0" )


处理中文文本内容


pip install - U textblob #英文文本的情感分析

pip install snownlp #中文文本的情感分析

from snownlp import SnowNLP

text = "I am happy today. I feel sad today."

from textblob import TextBlob

blob = TextBlob ( text )

TextBlob ( "I am happy today. I feel sad today." )

blob . sentiment

Sentiment ( polarity = 0.15000000000000002 , subjectivity = 1.0 )

s = SnowNLP ( u '这个东西真心很赞' )

s . words # [u'这个', u'东西', u'真心',

#  u'很', u'赞']

s . tags # [(u'这个', u'r'), (u'东西', u'n'),

#  (u'真心', u'd'), (u'很', u'd'),

#  (u'赞', u'Vg')]

s . sentiments # 0.9769663402895832 positive的概率

s . pinyin # [u'zhe', u'ge', u'dong', u'xi',

#  u'zhen', u'xin', u'hen', u'zan']

s = SnowNLP ( u '「繁體字」「繁體中文」的叫法在臺灣亦很常見。' )

s . han # u'「繁体字」「繁体中文」的叫法

# 在台湾亦很常见。'


抓取发放代理


pip install - U getproxy

~ getproxy -- help

Usage : getproxy [ OPTIONS ]

Options :

-- in - proxy TEXT Input proxy file

-- out - proxy TEXT Output proxy file

-- help Show this message and exit .


  • --in-proxy 可选参数,待验证的 proxies 列表文件

  • --out-proxy 可选参数,输出已验证的 proxies 列表文件,如果为空,则直接输出到终端

  • --in-proxy 文件格式和 --out-proxy 文件格式一致


zhihu api


pip install git + git :// github . com / lzjun567 / zhihu - api -- upgrade

from zhihu import Zhihu

zhihu = Zhihu ()

zhihu . user ( user_slug = "xiaoxiaodouzi" )

{ 'avatar_url_template' : 'http://img2.jintiankansha.me/get2?src=http://pic1.zhimg.com/v2-ca13758626bd7367febde704c66249ec_{size}.jpg' ,

'badge' : [],

'name' : '我是小号' ,

'headline' : '程序员' ,

'gender' : - 1 ,

'user_type' : 'people' ,

'is_advertiser' : False ,

'avatar_url' : 'http://img2.jintiankansha.me/get2?src=http://pic1.zhimg.com/v2-ca13758626bd7367febde704c66249ec_is.jpg' ,

'url' : 'http://www.zhihu.com/api/v4/people/1da75b85900e00adb072e91c56fd9149' , 'type' : 'people' ,

'url_token' : 'xiaoxiaodouzi' ,

'id' : '1da75b85900e00adb072e91c56fd9149' ,

'is_org' : False }


Python 密码泄露查询模块


pip install leakPasswd

import leakPasswd

leakPasswd . findBreach ( 'taobao' )



解析 nginx 访问日志并格式化输出


pip install ngxtop

$ ngxtop

running for 411 seconds







请到「今天看啥」查看全文