美文网首页程序员
分析自己在大学期间读过的书(二)

分析自己在大学期间读过的书(二)

作者: afaren | 来源:发表于2017-11-12 22:54 被阅读0次

    前情提要

    昨天,我使用 结巴分词词云 两个 python 库,达到了 提取读书记录频率按照词频高低显示不同大小到图片上 的效果。可是,由于分词的效果不佳,呈现的效果并不能很好地显示我所看书的类型。最后我联想到,利用豆瓣的图书标签来做图书分类。可是,豆瓣并没有提供 根据书名直接搜索书 的接口。今天的这篇文章,就着手解决这个问题。

    如何根据书名唯一确定一本书?

    在上一篇文章中,我们说到,豆瓣没有提供根据书名唯一确定一本书的 API,只提供了根据 ISBN 唯一确定一本书的 API。于是,一个很直观的念头就是,我如何根据书名拿到一本书的 ISBN 号码,继而通过这个 ISBN 号码搜索书。

    从这个思路出发,我先是百度 通过书名获取 isbn,没看到什么有用的回答;于是谷歌 get isbn by book name 找到 stackoverflow 上的这个回答

    how-to-get-isbn-number-from-a-book-title

    感觉问题都快要被解决的时候,却发现我没有权限下载这个库 -_-||……


    没有权限下载……

    那么该怎么办呢?申请权限还是重新找一个库,抑或是找非官方渠道下载。

    回到问题本身呢

    想想,感觉这是个比较麻烦的事情,搞不好能弄很久,最后就算把库下载下来也不一定解决得了问题。

    我的目的,在于获取一本书上的豆瓣标签,而获取这本书的 ISBN 只是手段。既然这个手段不是很好用,我就不应该为这个 附属复杂性 花费过多的时间。

    有别的方法可以根据书名获取它的豆瓣标签吗?

    我被自己骗了?

    平常我们在豆瓣上找书的时候,是可以通过书名找到一本书的,那就证明,豆瓣是有类似的手段的,为什么 API 文档上却没有呢?难道是我没有仔细看文档,漏掉了什么?重新看了一遍豆瓣的 图书 API,确认了,确实没有我要的 API。

    探索 - 规律

    抱着好奇与疑惑,我拿着读书记录的书名手动到豆瓣读书的网页上去搜索,发现,我输入的几本书都能找到。只不过不是唯一确定,同时被搜索出来的还有好多其他书名类似的书。
    尝试了几遍之后,我发现了一个规律 —— 我搜索的书总是在搜索结果列标中排第一位。这个结果非常合理,因为我搜索的书名是精确的,而豆瓣上刚好有这本书,所以在搜索结果中它就是排第一位的。那也就是说,其实我还是可以书名唯一确定一本书的。

    验证

    为了验证这个想法,我搜索了另外几个书名,得到的结果都是一致的。


    用 《怎样读文学古籍》 搜索 用 《论人类不平等的起源与基础》 搜索 用中英混合的 Agile Java中文版 搜索 用英文 Core Java 进行搜索 用带标点符号的 《习惯的力量:为什么我们这样生活,那样工作》 搜索

    只拿我需要的

    所以说,我其实可以拿着书名搜索,将豆瓣返回的搜索结果做个截取,只取结果集的第一个元素就可以了。

    未完待续……

    相关文章

      网友评论

        本文标题:分析自己在大学期间读过的书(二)

        本文链接:https://www.haomeiwen.com/subject/brtamxtx.html