Levon's Blog

微信: L6241425

0. 前言

网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。

我认为一次爬虫的过程, 就是网络请求到数据后, 处理数据, 然后发送数据的过程.

阅读全文 »

request是一个简答优雅的python HTTP库,相较于python标准库中的urllib和urllib2的库,requests更加的便于理解和使用.

1. 安装 requests

1
pip install requests
阅读全文 »

0. 前言

Viper(毒蛇)是一个方便Go语言应用程序处理配置信息的库。它可以处理多种格式的配置。它支持的特性:

  • 设置默认值
  • 从JSON,TOML,YAML,HCL和Java属性配置文件中读取
  • 实时观看和重新读取配置文件(可选)
  • 从环境变量中读取
  • 从远程配置系统(etcd或Consul)读取,并观察变化
  • 从命令行标志读取
  • 从缓冲区读取
  • 设置显式值
阅读全文 »

1. 模块

Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。

1
2
3
4
5
6
7
8
from pkg.func import hello
# pkg 是模块名字,就是目录名字
# pkg.func 是 pkg 目录下的 func 文件
# hello 是 func 文件的 hello函数


from pkg.topic import Topic
# Topic 是 topic 文件的 类
  • __init__.py ,如果目录中存在该文件,该目录就会被识别为 module package 。
  • __init__.py 在包被导入时会被执行。该文件就是一个正常的python代码文件,因此可以将初始化代码放入该文件中。
阅读全文 »

日志作为整个代码行为的记录,是程序执行逻辑和异常最直接的反馈。对于整个系统来说,日志是至关重要的组成部分。通过分析日志我们不仅可以发现系统的问题,同时日志中也蕴含了大量有价值可以被挖掘的信息,因此合理地记录日志是十分必要的。

阅读全文 »

1. Learn Go with tests

当学习一门语言时, 最有效的办法不是每一章的去阅读概念, 而是通过例子探索学习.

如果没有学习过 Go 语言的, 强烈建议通过编写测试学习 Go 语言, 不仅为测试驱动开发打下基础, 还是可以使用 Go 语言编写健壮的、经过良好测试的系统.

强烈推荐: https://github.com/quii/learn-go-with-tests

阅读全文 »

1. 前言

有些场景下,比如交易 K 线,我们需要前端对后端进行轮询来不断获取或者更新资源状态。轮询的问题毫无以为是一种笨重的方式,因为每一次 http 请求除了本身的资源信息传输外还有三次握手以及四次挥手。替代轮询的一种方案是复用一个 http 连接,更准确的复用同一个 tcp 连接。这种方式可以是 http 长连接,也可以是 websocket。

阅读全文 »

说到和动态库查找路径相关的问题,总体上可以分为两类:

  • 第一类:通过源代码编译程序时出现的找不到某个依赖包的问题
  • 第二类:就是在运行程序的时候,明明把那个程序需要的依赖包都已经安装的妥妥的了,可运行的时候人家就告诉你说error while loading shared libraries: libxxx.so.y: cannot open shared object file: No such file or directory
阅读全文 »

shadowsocks是我们常用的代理工具,它使用socks5协议,而终端很多工具目前只支持http和https等协议,对socks5协议支持不够好,所以我们为终端设置shadowsocks的思路就是将socks协议转换成http协议,然后为终端设置即可。

1. 设置终端代理

最新的 ShadowsocksX-NG 已经支持终端代理, 我们可以如下图复制得出:

1
export http_proxy=http://127.0.0.1:1087;export https_proxy=http://127.0.0.1:1087;
阅读全文 »

7. 更新消息类型

如果现有的消息类型不再满足您的所有需求 - 例如,您希望消息格式具有额外的字段 - 但您仍然希望使用使用旧格式创建的代码,请不要担心!在不破坏任何现有代码的情况下更新消息类型非常简单。请记住以下规则:

阅读全文 »
0%