1 张凯强 - zkqiang

尚未进行身份认证

暂无相关简介

等级
TA的排名 12w+

编写自己的 GitHub Action,体验自动化部署

本文将介绍如何使用 GitHub Actions 部署前端静态页面,以及如何自己创建一个 Docker 容器 Action。简介 ActionsGitHub Actions 是 GitHub 官方推出的持续集成/部署模块服务(CI/CD),和 jenkins、Travis CI 是同一类产品定位。但 Actions 的最大优势,就是它是与 GitHub 高度整合的,只需一个配置文件即可自...

2020-01-20 12:52:58

Python 2 与 3 共存了 11 年,新年就要和它道别

在 Python 3.9 都已经进入 dev 版本的 2020 年,Python 2 终于要和我们告别了。2 and 3Python 2 第一个版本发布于 2000 年 10 月 16 日,到今年正好是第 20 个年头。而 Python 3 发布于 2008 年 12 月 3 日,但由于 3.0 版本在底层进行了大量重构(主要是 Unicode 与 C API 的改动),无法完整兼容 Py...

2019-12-31 16:51:32

30 年前的圣诞节,Python 序章被谱写

1989 年圣诞节期间,已经从阿姆斯特丹大学(University of Amsterdam)获得数学和计算机硕士学位的 Guido van Rossum,为了打发圣诞节的无趣,决心开发一个新语言解释器,作为 ABC 语言的一种继承。之所以选中 Python(蟒蛇)作为该编程语言的名字,是取自英国 20世纪 70 年代首播的电视喜剧《蒙提.派森的飞行马戏团》(Monty Python’s Fl...

2019-12-24 23:27:46

文言文编程火了,可我完全学不懂

毕竟有易语言在前,有人认为中文可以降低国人学习编程的门槛,也增强汉语的国际地位。然而最近大火的文言文编程语言,让你明白什么叫“中文比英语还难”。Hello wenyan最近有个 GitHub 项目火了 —— 文言编程语言 / wenyan-lang。现在这个项目已经超过 10K Stars 了(昨天看还是 9K,一夜涨了 1K),咱赶紧来研究下。学语言嘛,当然先从 “Hello wo...

2019-12-21 18:09:28

通过 Python 理解 Mixin 概念

Mixin 的概念Mixin 即 Mix-in,常被译为“混入”,是一种编程模式,在 Python 等面向对象语言中,通常它是实现了某种功能单元的类,用于被其他子类继承,将功能组合到子类中。利用 Python 的多重继承,子类可以继承不同功能的 Mixin 类,按需动态组合使用。当多个类都实现了同一种功能时,这时应该考虑将该功能抽离成 Mixin 类。举个例子定义一个简单的类:clas...

2019-12-04 17:51:28

Node.js 使用 express-jwt 解析 JWT

Node.js 上 Token 鉴权常用的是 passport,它可以自定义校验策略,但如果你是用 express 框架,又只是解析 JWT 这种简单需求,可以尝试下 express-jwt 这个中间件。关于 JWTJWT 全称 JSON Web Token,是代替传统 session 认证的解决方案。其原理是服务端生成一个包含用户唯一标识的 JSON 对象,颁发给客户端。客户端请求需要...

2019-11-07 10:16:18

解决 Mac OS 10.14 环境下 gem install ERROR: Failed to build gem native extension

环境Mac OS Mojave 10.14ruby 2.3.7p456 (2018-03-28 revision 63024)报错信息$ sudo gem install sassBuilding native extensions. This could take a while...ERROR: Error installing sass: ERROR: Failed to...

2019-10-22 16:44:18

Python 3.8.0 正式版发布,新特性初体验

北京时间 10 月 15 日,Python 官方发布了 3.8.0 正式版,该版本较 3.7 版本再次带来了多个非常实用的新特性。赋值表达式PEP 572: Assignment Expressions新增一种新语法形式::=,又称为“海象运算符”(为什么叫海象,看看这两个符号像不像颜表情),如果你用过 Go 语言,应该对这个语法非常熟悉。具体作用我们直接用实例来展示,比如在使用正则匹...

2019-10-17 11:07:50

众咖云集的 PyCon 2019 上海站,大佬们都讲了啥

9 月 21 号周六,我参加了 PyCon China 2019 上海站,这是每年一届的 Python 中国开发者大会。[外链图片转存失败(img-JEeYYgS0-1569341102384)(http://static.zkqiang.cn/images/20190922124621.jpg-slim)]今年的上海站比往年的阵容扩大很多,「流畅的 Python」作者、Flask 作者及核心...

2019-09-25 00:05:24

Markdown 转换公众号文章,不再为排版花时间

上一篇「又一家数据公司被查,爬虫到底做错了什么?」反响强烈,虽然我这是新号,但还是获得了不少公众号的转发,借机也结识了很多业内大佬,在此感谢大家的抬爱!同时也有不少号主问我的文章排版是用的哪个网站,我的回答是:自己做的网站!没错,这就是本文的主角—— 公众号 Markdown 编辑器这是我基于一位大佬 @Lyric 开发的项目,进行 Fork 后的二次开发,因为原项目已经几个月没更新,有...

2019-09-14 14:22:01

又一家数据公司被查,爬虫到底做错了什么?

9月6日下午,多位业内人士称,杭州知名大数据服务公司杭州魔蝎数据科技有限公司,疑似被相关执法人员控制,其中一位周姓核心高管人员被警方带走。以上是前几天技术圈传播的一则新闻,又一家数据公司被调查,很多数据从业者、爬虫开发者发出了“感叹”——「爬虫用得好,XX进得早;数据玩得溜,XX吃个够」。魔蝎科技作为一家数据服务公司,曾在2017年一篇『爬虫凶猛:爬支付宝、爬微信、窃取现金贷...

2019-09-13 02:00:05

爬虫工程师分享:三步就搞定 Android 逆向

本文源于我近期的一次公司内部分享,通过逆向某款 APP 来介绍逆向过程。由于仅作为学习用途,APP 的相关信息会被遮盖,敬请理解。关于逆向逆向——包括但不限于通过反编译、Hook 等手段,来解析一些功能的实现过程。逆向在很多领域都有应用,比如如今爬虫技术已经遍地走,甚至不用写代码都可以爬取数据,导致前端开发的反爬意识也逐步提升。因此 JS、Android 等领域的逆向,已经成为爬虫开发者...

2019-09-05 23:30:49

爬虫工程师常用的 Chrome 插件

做多了爬虫都知道,写一个爬虫大部分时间不是在代码上,而是在分析网页上,所有有一套好用的工具可以极大节省劳动力,这里把平时积累的一些 Chrome 插件分享出来,均来自本人和同事推荐,并不定时更新,欢迎点赞和收藏。注意下载地址是谷歌应用商店,访问需要特殊方法,你懂的。XPath Helper相比较 Chrome 自身的 html 搜索,这款插件好用之处是可以显示匹配结果,在插件里写出正确...

2019-06-02 17:14:09

Python 描述符(Descriptor) 附实例

在 Python 众多原生特性中,描述符可能是最少被自定义的特性之一,但它在底层实现的方法和属性却无时不刻被使用着,它优雅的实现方式体现出 Python 简洁之美。定义一个描述符是一个有“绑定行为”的对象属性(object attribute),它的访问控制会被描述器协议方法重写。 任何定义了 __get__, __set__ 或者 __delete__ 任一方法的类称为描述符类,...

2019-05-05 12:01:00

Python 捕获线程中的异常

import sysfrom threading import Threaddef install_thread_excepthook(): init_original = Thread.__init__ def init(self, *args, **kwargs): init_original(self, *args, **kwargs) ...

2019-04-06 16:47:59

爬虫必备:Python 执行 JS 代码 —— PyExecJS、PyV8、Js2Py

在使用爬虫中,经常会遇到网页请求数据是经过 JS 处理的,特别是模拟登录的时候。而目前绝大部分前端 JS 代码都是经过混淆的,可读性极低,想理解代码逻辑需要花费大量时间。这时不要着急使用 Selenium 暴力解决,毕竟 Selenium 严重拖慢爬虫效率,我们可以尝试使用一些第三方库,来直接执行前端 JS 代码得到处理过后的结果。选择第三方库首先我们要选择一个合适的第三方库进行安装,帮助...

2019-03-18 11:47:19

如何理解“面向对象”编程思想

理解面向对象,首先理解要它的基础概念:面向对象 ( Object Oriented ) 是将现实问题构建关系,然后抽象成类 ( class ),给类定义属性和方法后,再将类实例化成实例 ( instance ),通过访问实例的属性和调用方法来进行使用。在不同的语言中,对象的定义范围不同。在 Python 中“类”和“类的实例”都称为对象 ( Object ),因为 Python 的...

2019-03-04 10:28:33

Python 轻量化简繁转换

最近项目中用到了简单的简繁转换,如果用OpenCC太重了,于是搜到了zhconv这个库。zhconv 提供基于 MediaWiki 词汇表的最大正向匹配简繁转换,Python 2, 3 通用。支持以下地区词转换:zh-tw 台灣正體 zh-hk 香港繁體 zh-sg 马新简体 zh-hans 简体 zh-hant 繁體正好适合我不求转换质量的轻量需求,所以介绍...

2019-03-01 11:27:53

Python 输出命令行进度条

在使用 pip 安装时,你会发现有下载进度条,我们也可以借助开源的第三方库来实现这个功能,在项目输出时增加一些可视化效果。一个简单易用的第三方库是:progress作者提供了动图很直观地展现了实现的所有输出。这个库实现了两类样式,一类是有终点的进度条样式,另一类是多用于加载的转圈样式。import timefrom progress.bar import Barb...

2019-03-01 11:26:22

自学入门 Python 优质中文资源索引

所有资源基于 Python3 版本,全部中文内容,适用于 爬虫 / Web / 数据 方向,每个单元根据学习习惯从 书籍 / 文档 / 视频 中选择一类即可,建议任选一本书籍,然后配合文档类进行学习。资源遵守“宁缺毋滥”的原则,均经过网评筛选或个人亲测,不推荐各类低质量大杂烩的文章书籍,力求少走弯路。通过本文链接资源坚持学习,可真正的零基础自学入门 Python ,实测已帮助两位零编程基础的朋...

2019-03-01 11:23:06

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 原力计划专属勋章
    原力计划专属勋章
    参与原力计划活动,成功进入英雄榜即可获得