摘要:
Json Web Token (JWT),是一个非常轻巧的规范,这个规范允许在网络应用环境间客户端和服务器间较安全的传递信息。该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源 阅读全文
摘要:
小强最近在项目中遇到了一个很奇怪的问题:在整改日志规范时,为了避免影响现有的代码结构以及改动尽可能小的前提下,在调用记日志的SDK处将某一个字段值首字母改为大写,代码示例如下: 项目中这里的a变量其实是作为参数传入,只是可能为空串。a变量不为空串时,这样写肯定没问题。但是当为空串时,即""时,就会出 阅读全文
摘要:
平时编写代码过程中,经常会遇到对于全局角度只需运行一次的代码,比如全局初始化操作,设计模式中的单例模式。针对单例模式, java 中又出现了饿汉模式、懒汉模式,再配合 synchronized 同步关键字来实现。其目的无非就是将对象只初始化一次,而且最好保证在用到的时候再进行初始化,以避免初始化太早 阅读全文
摘要:
在开始环境搭建之前,我们先一起来看看: Go有什么优势: 不用虚拟机,它可直接编译成机器码,除了glibc外没有其他外部依赖,部署十分方便,就是扔一个文件就完成了。 天生支持并发,可以充分的利用多核,很容易实现并发。 25个关键字,但是表达能力很强大,几乎支持大多数你在其他语言见过的特性:继承、重载 阅读全文
摘要:
我们前两节课爬取珍爱网的时候,用到了很多正则表达式去匹配城市列表、城市、用户信息,其实除了正则表达式去匹配,还可以利用goquery和xpath第三方库匹配有用信息。而我利用了更优雅的正则表达式匹配。下来大概介绍下正则表达式。 比如我们匹配城市列表的时候,会取匹配所有城市的url,如下: 可以看到图 阅读全文
摘要:
golang爬取珍爱网,爬到了3万多用户信息,并存到了elasticsearch中,如下图,查询到了3万多用户信息。 先来看看最终效果: 利用到了go语言的html模板库: 执行模板渲染: model.SearchResult数据结构如下: html <!DOCTYPE html Love Sear 阅读全文
摘要:
golang爬珍爱网代码优化后,运行报了如下的错,找了半小时才找到原因,在此记录一下。 代码是这样的: 有一个interface类型的Parser: 有一个struct类型的FuncParser: FuncParser 实现了Parser 接口: 抛开爬虫代码整体的复杂度,将代码简化到如下这样: 同 阅读全文
摘要:
前两天我们写了单任务版爬虫爬取了珍爱网用户信息,那么它的性能如何呢? 我们可以通过网络利用率看一下,我们用任务管理器中的性能分析窗口可以看到下载速率大概是保持在了200kbps左右,这可以说是相当慢了。 我们针对来通过分析单任务版爬虫的设计来看下: 从上图我们可以看出,engine将request从 阅读全文
摘要:
前两节我们获取到了城市的URL和城市名,今天我们来解析用户信息。 "用go语言爬取珍爱网 | 第一回" "用go语言爬取珍爱网 | 第二回" 爬虫的算法: 我们要提取返回体中的城市列表,需要用到城市列表解析器; 需要把每个城市里的所有用户解析出来,需要用到城市解析器; 还需要把每个用户的个人信息解析 阅读全文
摘要:
昨天我们一起爬取珍爱网首页,拿到了城市列表页面,接下来在返回体城市列表中提取城市和url,即下图中的a标签里的href的值和innerText值。 提取a标签,可以通过CSS选择器来选择,如下: $(' cityList dd a');就可以获取到470个a标签: 这里只提供一个思路,go语言标准库 阅读全文