文章 39
评论 418
浏览 60282
Go爬虫初体验

Go爬虫初体验

前言   闲来无事的时候,偶尔也会看看漫画,但是鹅厂的操作大家都懂,想看最新的你就得给钱,本着白嫖精神,我找到了扑飞漫画,但是这网页的阅读体验一言难尽,他家的APP也是,动不动就加载失败,一等一半天。思来想去,还是弄个爬虫把图片都爬下来,然后想法弄到kindle里面岂不美哉。因为不会Python,所以只好用GO来写了,虽然没写过,但是可以现学嘛。 初识爬虫   网上找了下资料,go的写爬虫也太简单了吧,几行代码就搞定了,比如下面这样,几行代码就把整个页面拿到了。 package main import ( "fmt" "io/ioutil" "net/http" ) func main() { resp, err := http.Get("https://www.baidu.html") if err != nil { fmt.Println("http get error", err) return } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println(....

高性能消息队列NSQ---GO--demo

高性能消息队列NSQ---GO--demo

前言   关于NSQ是什么,NSQ是做什么的,怎么启动,网上的资料太多太多,详情请移步分布式实时消息平台NSQ,里面讲的很详细,还附带demo。 客户端/生产者(producer)   NSQ发送消息非常简单,分两步完成: 创建Producer实例 调用Publish发送一个新的消息到指定的topic中 具体实现如下所示 func main(){ cfg := nsq.NewConfig() nsqd := "127.0.0.1:4150" producer, err := nsq.NewProducer(nsqd, cfg) if err != nil { log.Fatal(err) } if err := producer.Publish("test", []byte("Hello NSQ")); err != nil { log.Fatal("publish error:" + err.Error()) } } 服务端/消费者(consumer)   消费者用于接收指定topic中的消息,实现需分为3步: 调用NewConsumer为指定的主题/渠道创建消费者的新实例 ....

go 语言圣经练习解答 -- 第四章 (关闭)

go 语言圣经练习解答 -- 第四章 (关闭)

go语言圣经(The Go Programming Language)练习题答案 前言 go语言圣经是一本go入门非常不错的书籍,翻译至The Go Programming Language,本文记录该书章节后练习题答案

【go 语言圣经】练习答案 -- 目录篇 (关闭)

【go 语言圣经】练习答案 -- 目录篇 (关闭)

1.Go语言有时候被描述为“C类似语言”,或者是“21世纪的C语言”。 2.Go语言中和并发编程相关的特性是全新的也是有效的,同时对数据抽象和面向对象编程的支持也很灵活。Go语言同时还集成了自动垃圾收集技术用于更好地管理内存。 3.Go语言尤其适合编写网络服务相关基础设施,同时也适合开发一些工具软件和系统软件。 4.Go语言有足够的类型系统以避免动态语言中那些粗心的类型错误,但是,Go语言的类型系统相比传统的强类型语言又要简洁很多 5.现代计算机是一个并行的机器,Go语言提供了基于CSP的并发特性支持。Go语言的动态栈使得轻量级线程goroutine的初始栈可以很小,顺序通信进程(CSP),在CSP中,程序是一组中间没有共享状态的平行运行的处理过程,它们之间使用管道进行通信和控制同步 6.Go语言的标准库(通常被称为语言自带的电池),提供了清晰的构建模块和公共接口,包含I/O操作、文本处理、图像、密码学、网络和分布式应用程序等,并支持许多标准化的文件格式和编解码协议 7.书中所有的代码都可以从 http://gopl.io 上的Git仓库下载。go get命令根据每个例子的导入路径智能....

go 语言圣经练习解答 -- 第三章

go 语言圣经练习解答 -- 第三章

go语言圣经(The Go Programming Language)练习题答案 前言 go语言圣经是一本go入门非常不错的书籍,翻译至The Go Programming Language,本文记录该书章节后练习题答案 * 中文pdf获取地址1 中文pdf获取地址2 * 英文原版获取地址 * 中文实体书获取地址 (一个还不赖的盗版书网站) * 本文从第三章练习3.10开始,前面的请查看移步我的CSDN 练习 3.10: 编写一个非递归版本的comma函数,使用bytes.Buffer代替字符串链接操作。 参考书中的comma函数,即实现基本的为数字添加逗号分隔符 确定了第一个逗号位置后,每隔三个数字添加一个逗号,最后末尾会多出来一个逗号,去掉即可 使用bytes.Buffe而非"+" func comma(s string) string { var buffer bytes.Buffer l := len(s) for i := 0; i < len(s); i++ { buffer.WriteString(string(s[i])) // 取余3可以得到第一个插入逗号的......

凡打不倒我的,必使我强大!!!—— 墨殇的技术博客