APTX Blog

A Moe Blog Set Up By Mizuki

从台湾网路书店爬取图书信息小记

文章目录[隐藏]

日常标题

最近想整一个台版日轻、日漫的图书数据,方便查询也是学习一下爬虫和数据的维护工作。

读册生活

一开始选定的书店是博客来、金石堂,后来发现了读册生活的比较简易的接口。(但是一次只能查询不到30组(一组也没又太多个数据),而且提供的信息较少。API有使用限制,频率大了就炸开)

心想又不是不能用,先拿个漫画测试。直接上手axios慢慢爬(因为有频率限制,同步单线程操作都得有时候返回null)爬完了2W多条数据。

先测试一发搜了个“New Game”结果发现书并不全。大概只有5-10卷的信息,而且也没有一些年代比较久远的书信息。

后来才发现这个接口并不提供不可购买(已绝版)书籍的信息。。。

然后我想大不了上cheerio自己爬,毕竟读册生活URL构造很简单,就是ID自增罢了。

但是发现他家图书分类比较奇葩,画集和周边是在一个分类里面,如果对标题进行过滤的话感觉会过滤掉许多有用的信息(或者很多无用的信息也被收录)

诚品

最后又找了找书店,发现读册生活相比金石堂、博客来构造URL来说是最简单的了。

打开诚品书店后,点开了图书的分类,发现了lazyLoad加载图标。心想难不成这是真 · 前后端分离的?

看了看XHR,果然是这样,而且提供的接口非常全,像是图书名,原名,ISBN号,价格等都有。

而且测试一次请求能最多查询1W条数据(对于7W多条数据的漫画,那仅是查询8次的事,哪怕同步且单线程操作,也不会很慢)

再看了看DOM结构,发现很熟悉。一堆data让我想起了Vue里的style scoped。

看了一下静态资源的引用路径。原来是用Nuxt.js框架开发的啊。

好活,不过都用Nuxt.js了,服务端预渲染一下更好吧。

点赞

发表评论

邮箱地址不会被公开。 必填项已用*标注