Go 语言学习笔记:抓取 XKCD 中文站的漫画
介绍
XKCD 中文站,是一个关于浪漫、隐喻、数字、以及语言的线上漫画。该站有好多有趣的漫画,我们的目标是抓取 XKCD 中文站的所有漫画并且解析漫画信息保存为 Json 格式。
实现
本项目不会使用 goroutine,按照 XKCD 网站的结构,从https://xkcd.in主页开始,递归抓取下一页,直到没有下一页递归结束。
具体任务包括:
下载网页解析为漫画信息结构体
下载漫画图片并保存到本地
将漫画信息结构体转换为 json 保存到本地
创建一个漫画信息结构体类型来保存漫画信息:
复制代码
解析网页信息时,我们会使用到一个开源库:github.com/antchfx/htmlquery 支持用 xpath 的方式解析网页
下载并保存图片、保存信息,我们还会用到标准库 net/http、encoding/json、io、io/ioutil、path、os 等等
最后我们的程序是在命令行方式下运行的,图片和漫画信息保存目录通过参数传入,我们用到标准库 flag 包
源码
项目源码:https://github.com/huagetai/xkcd-crawler
版权声明: 本文为 InfoQ 作者【worry】的原创文章。
原文链接:【http://xie.infoq.cn/article/a7557110c7b593f7ea5a98b48】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论