写点什么

Go 语言学习笔记:抓取 XKCD 中文站的漫画

用户头像
worry
关注
发布于: 2021 年 03 月 08 日
Go语言学习笔记:抓取XKCD中文站的漫画

介绍

XKCD 中文站,是一个关于浪漫、隐喻、数字、以及语言的线上漫画。该站有好多有趣的漫画,我们的目标是抓取 XKCD 中文站的所有漫画并且解析漫画信息保存为 Json 格式。


实现

本项目不会使用 goroutine,按照 XKCD 网站的结构,从https://xkcd.in主页开始,递归抓取下一页,直到没有下一页递归结束。


具体任务包括:

  1. 下载网页解析为漫画信息结构体

  2. 下载漫画图片并保存到本地

  3. 将漫画信息结构体转换为 json 保存到本地


创建一个漫画信息结构体类型来保存漫画信息:


type Comic struct {   Id string   Title string   ImageUrl string   NextLink string   Description string}
复制代码

 

解析网页信息时,我们会使用到一个开源库:github.com/antchfx/htmlquery 支持用 xpath 的方式解析网页


下载并保存图片、保存信息,我们还会用到标准库 net/http、encoding/json、io、io/ioutil、path、os 等等


最后我们的程序是在命令行方式下运行的,图片和漫画信息保存目录通过参数传入,我们用到标准库 flag 包


源码

项目源码:https://github.com/huagetai/xkcd-crawler

 

发布于: 2021 年 03 月 08 日阅读数: 16
用户头像

worry

关注

心若有翼,我自飞翔 2018.01.25 加入

一个戴着眼睛的肥胖的扑腾蛾子

评论

发布
暂无评论
Go语言学习笔记:抓取XKCD中文站的漫画