这篇文章用来收集整理爬虫相关的资料。
相关技术
如果只想单纯的自己开发,可以使用 Python + Celery + Redis/MySQL 基本能满足 80% 的需求。
如果想要选用框架 Scrapy,pyspider,等等都是非常不错的选择,我甚至在 GitHub 上看到过 Java 的分布式爬虫。
书籍
Python 3 网络爬虫开发实战
这本书在网上有部分 gitbook,链接在这里
网上公开的部分都是无关痛痒的部分,不过提及的工具倒是可以参考一下。大部分我之前的文章也都有提及
mitmproxy
wireshark
Read more ...
树莓派官网有很多系统可以选择,我选了官方维护的 Raspbian 基于 Debian 的衍生版,主要是熟悉他的 APT 包管理,看评价三方维护的 Snappy Ubuntu Core 换用了其他的 snap 的管理,不是很了解,所以还是选择了 Raspbian。
系统安装
官网提供的教程非常方便, 采用开源的镜像烧录工具 Etcher 非常方便的就可以在三大平台上完成镜像到 SD 的烧录。当然如果熟悉各个平台的工具也可以自己手动完成烧制。
启动系统
在将系统写入 microSD 卡之后,将卡插入树莓派板子,启动树莓派,开机即可,可以用 HDMI
Read more ...
Redis 在设计上,是用来被可信客户端访问的,也就意味着不适合暴露给外部环境非可信客户端访问。
最佳的实践方法是在 Redis 前增加一个访问控制层,用于校验用户请求。
基本配置
Redis 本身提供了一些简单的配置以满足基本的安全控制。
IP 绑定。如果不需要直接对外提供服务,bind 127.0.0.1 就行了,切忌 bind 0.0.0.0
端口设置。修改默认的 6379,一定程度上避免被扫描。
设置密码。Redis 的密码是通过 requirepass 以明文的形式配置在 conf 文件里的,所以要尽可能得长和复杂,降低被破
Read more ...
很久没有更新这个分类下的文章了,其实一直在体验不同的产品,只是真的很少有能拿出来讲一下的东西。不管是硬件还是软件,最近几年使用的东西越来越狭窄,越来越收缩,当然对于某一个特定的需求,总有一个产品能够占领绝大多数市场,而也有部分产品能够瓜分小众市场。这里要介绍的这个 NodeQuery 就不是一个大而全的产品,而是一个很精细的小众产品。我用它也一年多了,我的需求很简单,能够实时监控我的 VPS,能够在宕机或者高负载时报警。NodeQuery 完全能够满足我的需求。
用 NodeQuery 自己的话描述自己就是:”一个轻量、易用的 Linux 服务器监控服
Read more ...
许多使用静态语言比如 C、 C++ 或者 Java 的人,在转到 Python 的时候可能第一个会疑惑的就是 Python 不需要显示的指定类型,那么 Python 是怎么知道变量的类型呢?
变量创建流程
在 Python 中,变量的创建遵循着一个非常合理的方式,以 a=3 来举例子:
变量创建
一个变量(名字)比如 a ,当第一次被赋值时被创建。
变量类型 Variable Types
一个变量永远不会有任何类型信息或者约束,类型的概念和 Object 关联,而不是变量名字。变量都是通用的(泛
Read more ...
Python 很重要的一个概念 module,用来组织代码结构。
import 导入搜索的路径
代码的 home 路径
PYTHONPATH 目录(如果存在的话)
标准库路径
.pth 文件中配置的路径(如果存在的话)
最终,这些路径都会存在 sys.path 中,是一个保存着一系列搜索路径的 list。
>>> import sys
>>> sys.path
导入工作流程
在路径中找到导入的模块
编译
运行
Package
一个目录的 Python code 被称为
Read more ...
从 WizNote 中整理。
POJO, Plain Old java object, 最简单的 Java 对象
[[Dependency Injection]] 带来的最大好处,松耦合,如果一个对象只通过接口(而不是具体实现或初始化过程)来表明依赖关系,那么这种依赖就能够在对象本身毫不知情的情况下,用不同的具体实现进行替换。
AOP aspect-oriented programming, 面向切面编程允许将遍布应用各处的功能分离出来形成可重用的组件
依赖注入让互相协作的软件组件保持松散耦合,而 AOP 则是让遍布各处的功能分离出来形成可重用的
Read more ...
一般的注解,比如常见的 @Override 是 Java 从 1.5 版本开始引入,注解一般用来对代码进行说明,可以对包、类、接口、字段、方法参数、局部变量等等进行注解,他的作用一般分为如下四个方面:
生成文档
编译检查,通过注解让编译器在编译期间进行检查校验
编译时动态处理,编译时通过注解标示进行动态处理,比如生成代码
运行时动态处理,反射注入实例等等
一般的注解可以分为三类:
Java 自带的注解,包括 @Override @Deprecated 等等
元注解,用于定义注解,包括 @Retention @Targe
Read more ...
这篇文章总结一下 Python 的内置类型。
类型
Object type
Example literals/creation
Numbers
1234 , 3.1415 , 3+4j , Decimal , Fraction
Strings
‘spam’ , “guido’s” , b’a\x01c’
Lists
[1, [2, ‘three’], 4]
Read more ...
https://www.google.com/foobar/?eid=sfeTWdGPBIac8QXcxpXgAQ&usg=AG3vBD082_C21k4vEcaG4KspC-1eGqU7KA
Minion Labor Shifts
===================
Commander Lambda's minions are upset! They're given the worst jobs on the whole space station, and some of them are starting to complain
Read more ...
2017-08-16