Go 1.13 errors 包优雅的处理异常判断

Go 1.13 发布后对 errors 包有进一步的改善,其中errors.Is可以很方便的进行异常的判断。

使用 Goribot 快速构建 Golang 爬虫

zhshch2002/goribot: [Crawler/Scraper for Golang]Make a Golang spider in 3 lines是我的一个业余项目,目的是能尽可能简洁的使用Golang开发爬虫应用。

Golang生成随机数

在GoLang 中,我们可以通过 math/rand 包里的方法来生成一个伪随机数:

1
2
3
4
5
6
7
8
9
10
package main

import (
"fmt"
"math/rand"
)

func main() {
fmt.Println(rand.Int()) // => 134020434
}

但如果你在本地,运行和我一样的代码,无论运行多少次,输出都是一样的

Golang爬虫全家桶—Goquery选择器

goquery类似jquery,它是jquery的go版本实现。使用它,可以很方便的对HTML进行处理。

Golang爬虫全家桶—Goquery开箱指南

Goquery是一个Html解析库。其部分操作很接近JQuery的选择器。基本上会用jquery的,Goquery基本可以1分钟上手。

安装

1
go get github.com/PuerkitoBio/goquery

然后引入

1
import "github.com/PuerkitoBio/goquery"

从Golang中的panic、defer和recover到错误处理的理解方式

Golang中的异常,不是用try-catch来处理的。很多Go的函数会返回多个参数,一般最后一个参数为error类型。

在Golang的设计哲学里:

  • 异常应该用对应的逻辑去处理,无法处理使程序无法继续的情况返回error。
  • error不是异常,是需要被记录到log中的使程序无法运行的情况
  • error位置的返回值为nil即认为没有错误。
  • panic会打断程序,输出错误日志,recover会取消panic的打断继续运行。

Lightsocks 使用教程 Golang编写的SOCKS5轻量级网络混淆代理

Lightsocks 一个轻量级网络混淆代理,基于SOCKS5协议,可用来代替Shadowsocks

  • 只专注于混淆,用最简单高效的混淆算法达到目的;
  • 不会放大传输流量,传输流量更少更快,占用资源更少(内存占用1M左右,CPU 占用 0.1% 左右);
  • 纯Golang编写,跨平台。

go get没反应?启用goproxy.cn代理

由于一些众所周知的原因,go get并不能顺利的访问golang.org/x相关的内容。所以执行go get时会长时间没有反应。

对此可以使用GOPROXY这个环境变量设置一个golang.org/x的模块代理。(关于模块代理

pyenv与virtualenv安装,Python版本管理使用教程

pyenv是Python版本管理工具。 pyenv可以

  • 安装多个版本的 Python
  • 改变全局的 Python 版本
  • 设置目录级别的 Python 版本
  • 创建和管理 virtual python environments

所有的设置都是用户级别的操作,不需要sudo命令。

pyenv的美好之处在于,它并没有使用将不同的PATH植入不同的shell这种高耦合的工作方式,而是简单地在PATH的最前面插入了一个垫片路径(shims):~/.pyenv/shims:/usr/local/bin:/usr/bin:/bin。所有对Python可执行文件的查找都会首先被这个垫片路径(shims)路径截获,从而使后方的系统路径失效。

Brook使用教程与客户端整理

Brook是一个由 Go语言编写的跨平台代理软件,支持 Linux/MacOS/Windows/Android/iOS 各个平台。

服务器端安装

逗比根据地官方教程

系统要求

CentOS 6+ / Debian 6+ / Ubuntu 14.04 +

安装

1
wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/brook.sh && chmod +x brook.sh && bash brook.sh

V2Ray基本使用教程与运行原理

V2Ray 是 Project V 下的一个工具。Project V 是一个包含一系列构建特定网络环境工具的项目,而 V2Ray 属于最核心的一个。

官方中介绍

Project V 提供了单一的内核和多种界面操作方式。内核(V2Ray)用于实际的网络交互、路由等针对网络数据的处理,而外围的用户界面程序提供了方便直接的操作流程。

V2Ray是一个与 Shadowsocks 类似的代理软件,但设计理念与ss相比甚是复杂。Shadowsocks 功能单一,V2Ray 功能强大。换一个角度来看,Shadowsocks 简单好上手,V2Ray 复杂配置多。

为Centos 7分配SWAP(交换分区)

经过Mariadb数次异常停摆后,查出来内存溢出错误。为啥以前就没有出过这个问题。free指令一看,我怎么没有swap分区!整理了一下Linux下分配交换分区的指令,以备后用。

当前环境为Centos 7,root用户

CentOS7编译安装Python3.7

安装依赖环境:

1
yum install -y openssl-devel openssl-static zlib-devel lzma tk-devel xz-devel bzip2-devel ncurses-devel gdbm-devel readline-devel sqlite-devel gcc libffi-devel

下载Python3.7.0

1
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz

将解压后文件夹迁移至/usr/local

1
mv Python-3.7.0 /usr/local

进入Python目录

1
cd /usr/local/Python-3.7.0/

Centos 7下搭建SSR服务器+BBR

下载一键安装脚本

脚本1(推荐)

1
2
3
yum -y install git
git clone https://github.com/flyzy2005/ss-fly
ss-fly/ss-fly.sh -ssr

脚本2

1
2
3
4
yum -y install wget
wget --no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocksR.sh
chmod +x shadowsocksR.sh
bash shadowsocksR.sh
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×