python
文章平均质量分 65
喜碧夫人听众
鬼知道我竟然还会写博客
展开
-
用Python实现AES加密和解密
一、前言AES,高级加密标准(英语:Advanced Encryption Standard)。是用来替代DES,目前比较流行的加密算法。 它是一种对称加密算法,与上一篇博文提到过的RSA非对称算法不同,AES只有一个密钥,这个密钥既用来加密,也用于解密。AES只是个基本算法,实现AES有几种模式,主要有ECB、CBC、CFB和OFB这几种(其实还有个CTR):1.ECB模式(电原创 2018-01-11 12:03:41 · 19646 阅读 · 0 评论 -
聊聊几个简单的排序算法
前言排序是算法的入门知识,其经典思想可以用在许多算法中,在实际应用中是相当常见的一类。记得在本科的数据结构课上就有讲过几个经典的排序算法,现在来好好地回顾下。 在回顾之前,了解一个概念,这个概念也是我刚刚了解的。(手动扶额-。-) 排序算法稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,ri=rj,且ri在rj之前,而...原创 2018-05-03 18:52:12 · 338 阅读 · 0 评论 -
SMTP发送邮件——Python实现
有的时候我们的脚本需要发送个邮件提醒我们事情干的怎么样了,所以需要代码来实现自动发送邮件。 请看:def email_module(output): import smtplib from email.mime.text import MIMEText from email.header import Header mailto_list = [xxxxx...原创 2018-05-14 10:45:13 · 573 阅读 · 0 评论 -
用Python组装html表格
最近接到个需求,将报表用html组装成表格嵌在邮件正文中发出。用Python发邮件在之前已经尝试过,组装html表格也不难,搜了下html的语法然后依样画葫芦拼接下:html_header = '''<table border="1"><tr><th>序号</th><th>标签</th><th&am原创 2018-11-19 11:15:33 · 1955 阅读 · 1 评论 -
Python对千分位的处理
有一个需求,需要给数字添加千分位,对于大数字来说观感会更好,不然数位数也是一件蛮累的事情。第一反应是写一个暴力添加逗号的函数,从个位数开始倒推,每三位添加一次逗号,直到取完所有位数。细想之下,如果是小数的话,需要判断哪一位是个位数,而不是直接取最后一位,这个函数的复杂度因此增加了不少。正准备动手之际,花了几秒钟时间搜索了下,发现了这么个玩意儿:format(123456789,',')'...原创 2018-11-19 11:26:36 · 7687 阅读 · 0 评论 -
Python的format()函数
前言上篇博文,我们用format(number,',')快速实现了对数字千分位的分隔。熟悉python的人都知道,foramt函数更常见的用法其实是str.format(),其基本语法是通过{}和:来代替以前的%。示例:>>>"{} {}".format("hello", "world") # 不设置指定位置,按默认顺序'hello world' >&g...原创 2018-11-21 19:50:22 · 32578 阅读 · 5 评论 -
DataWorks关于PyODPS的节点参数
一、前言对于ODPS SQL节点的参数配置,是比较清晰明了的。对于习惯使用ODPS的人来说,想必大家也已经十分熟悉了。详情可以找一找阿里云的官方文档,这里贴个传送门:https://help.aliyun.com/document_detail/74450.html?spm=a2c4g.11186623.6.644.63bf5c57zj8JuV二、PyODPS的参数设置与ODPS SQL...原创 2019-03-21 19:24:48 · 2600 阅读 · 0 评论 -
使用PyODPS节点监测SDK上传数据的完成节点
一、前言一直以来公司都有个痛点亟待解决,分库分表的MongoDB上传数据至ODPS,于是就有了一套利用tunnel java sdk上传数据的服务。但是上传完数据后DataWorks上的任务链依赖如何开始传递,一直没有解决。老办法是打时间差,按照一般上传耗时3个小时计算,所有任务的起点都配置在凌晨4点开始,这在大多数时候都能生效,但在一些流量特别大的日子就会异常,数据没传完,但任务已经开始执行...原创 2019-03-22 14:52:45 · 1285 阅读 · 0 评论 -
ODPS上的UDF(Python实现)
一、前言MaxCompute中的python是2.7环境的,可以通过sys.version验证,话说Python社区都准备放弃2.7了,阿里云啥时候跟上时代的步伐升级到3.x哦。我们测试一下:Executing user script with PyODPS 0.8.02.7.10 (default, Sep 18 2015, 16:43:46)[GCC 4.1.2 20080704 (...原创 2019-04-30 16:46:28 · 5306 阅读 · 0 评论 -
分享爬取链家地图找房房价数据的小爬虫
一、说在前面受人所托,爬取链家上地图找房的数据:https://bj.lianjia.com/ditu/。 上面有按区域划分的二手房均价和在售套数,我们的任务就是抓下这些数据。 二、开干2.1失败一次老样子,Chrome 按下F12打开Chrome DevTools中的Network标签查看请求过程,像这种需要更新的数据大概率是通过后台接口请求返回的,遗憾的是在XHR下...原创 2018-04-23 18:01:44 · 4992 阅读 · 6 评论 -
字符串的倒序
前言逛博客的时候翻到了一道面试题,用递归的思路来进行字符串的倒序输出,我想了想,用我熟悉的Python来实现了下,另外也附上了别的方法。Show the code#arrayn = input()arrayn = 'abcdef'l = len(arrayn)# python自带功能直接法print(arrayn[::-1])# 利用另一个列表,逐个倒序输出arrayl...原创 2018-04-10 17:13:44 · 364 阅读 · 0 评论 -
用Python实现RSA签名和验签
唠叨两句,蹭点篇幅RSA是一种非对称加密算法,简单理解就是两个密钥:一个公钥,一个私钥。 同时它也可以用来签名和验签,正好与加密相反。加密:公钥加密,私钥解密;签名:私钥签名,公钥验签。有意思的是有些人分不清公钥私钥的用处,这里提供一个思路: 用作加密时,密文泄露是无所谓的(相对而言),重要的是用于解密的密钥必须安全,所以用不公开的私钥来解密,用公钥来加密; 用作签名时,目原创 2018-01-10 17:23:10 · 18359 阅读 · 5 评论 -
谈谈Python大名鼎鼎的第三方库Requests
例行闲扯Requests是基于urllib库编写的HTTP库,官方的大标题是这么写的: HTTP for Humans人性化的HTTP?手动斜眼笑,总之官方文档写的挺逗逼的,非常值得一看。当然这个库的强大也足以对得起官方文档不遗余力的吹捧。 官方文档:http://www.python-requests.org/en/master/ 官方中翻:http://docs.pyth原创 2018-01-12 16:03:49 · 406 阅读 · 0 评论 -
分享百度贴吧爬虫的Python代码
说在前面之前分享了微博的爬虫代码,因为这些大网站的反爬机制相对比较严格,说不准啥时候又不能用了也是很常见的情况。所以细节上的东西需要各位自己来调整了。这次分享我写的爬取百度贴吧帖子内容的爬虫。上代码import requestsfrom bs4 import BeautifulSoupimport reimport pymysqlimport timephone_p原创 2018-01-31 14:07:17 · 1062 阅读 · 1 评论 -
用Python绘制词云图
前言词云图是数据分析中比较常见的一种可视化手段。 正好,Python下也有一款词云生成库,word_cloud:https://github.com/amueller/word_cloud 基于我之前爬取的微博数据,制作了一批词云图,由此来讲讲此模块的使用。一、分词1.1 制作停止词库分词之前先准备一下停止词,因为中文中有很多的语气词啊,副词啊等,对于我们展现词频热度是无意原创 2018-01-26 10:03:48 · 22619 阅读 · 1 评论 -
用Python识别简单验证码
前言闲扯标题虽然是识别验证码,但实际上本文讲的是OCR(Optical Character Recognition,光学字符识别)。 用到三个模块:PILtesseract-ocpytesseract简单介绍下: 1. PIL (Python Imaging Library)是 Python 中最常用的图像处理库; 2. tesseract-oc是HP的一个文字识别项目,原创 2018-01-18 18:50:17 · 2033 阅读 · 1 评论 -
自定义Dota2英雄名字来获得更好的小地图体验
写在前面DoTA2是笔者一直在玩的一款游戏,在小地图的选项中可以选择是剪头/圆圈表示敌我双方,也可以选择为英雄头像,我最喜欢的模式是直接显示英雄名字。 简易图标模式: 英雄头像模式: 英雄名称模式: 然而,英雄名称模式有个问题。有些英雄的官方译名太长,如“殁境神蚀者”。此类过长的名字出现在小地图上很容易让人迷惑其准确的位置。解决思路官方译文的文件其实存放在本地。 其位置为:”原创 2018-02-03 17:16:31 · 2383 阅读 · 1 评论 -
分享下微博爬虫的代码
一、说在前面微博的反爬做的还是挺好的,登陆过程中有跳转、加密、验证码等玩意儿夹杂在一起,模拟登陆的难度比较大。所以偷懒用了cookie登录的方式,访问wap站来减小难度。 思路是从一个大V开始抓取他的粉丝列表,从粉丝列表中筛选粉丝数较大的号继续爬取他的粉丝列表,获取了大量的微博UID后,拼接出他的个人资料页和所发微博页,从中爬取需要的数据。二、上代码2.1 获取微博UIDimpo原创 2018-01-30 10:20:05 · 2084 阅读 · 2 评论 -
谈谈Python的鸭子类型
开篇语1.1 面向对象在讲鸭子类型之前先聊聊面向对象编程(Object Oriented Programming,OOP),是在程序开发中一件很强大的武器。它把对象作为程序的基本单元,一个对象包含对象变量和对象函数(或叫方法)。 收!(手动摆手)基本概念就不再展开了,简单聊聊OOP中的两个重要概念继承和多态。1.2 继承继承可以让子类获得父类的全部功能,父类实现过的方法,原创 2018-02-06 17:58:20 · 7451 阅读 · 0 评论 -
MaxCompute的Lighting接口
一、简介MaxCompute Lightning是MaxCompute产品的交互式查询服务,支持以PostgreSQL协议及语法连接访问Maxcompute项目。正常情况下,我们使用MaxCompute表的数据是需要回流过程的,将数据回流到数据库中,然后查询数据库获取数据。然而在某些查询频率不高,查询周期不定的场景下,这种回流的方式其实不是特别适合。于是就有了交互式查询服务Lightning。...原创 2019-07-31 19:32:56 · 1109 阅读 · 0 评论