最近使用 C# + XAML + UWP 写了一个 APP,我将其命名为 BookFinder。 最初的设想是想让它拥有如下功能:
- 提取 e-book 分享网站的书籍信息;
- 提供下载书籍功能;
- 提供搜索功能;
- 整合多个网站源,提供更全的搜索功能。不同的网站可以做成一个单独的爬虫,作为插件的形式加载在软件中,只需共享一定的接口即可。
现在写的第一个版本 v1.0,仅仅提供了一个热门书籍推荐和下载功能。源码公布在Github上,并且发布了第一个版本,有兴趣的同学可以自己下载安装。当然也可以下载源码自行编译。
软件介绍
话不多说,先上图。
软件的首页长这样:
点击书籍的封面会进入详情页:
虽然爬虫获得了书籍的很多信息(title,publish year,format,size etc),但是我这里嫌麻烦,在详情页里面也只放了一张 Cover。
点击封面会弹出一个菜单,点击保存按钮就能后台进行下载了。
下载完成后,会有一个 Toast 通知,提示你下载完成了。点击消息上的 View 按钮就会弹出保存位置,查看到下载的书籍了。
以上就是这个 App v1.0 的全部功能了。
这个软件爬取的是国外的一个书籍分享网站(https://b-ok.org/)上的内容,我很喜欢这个网站,很多书都能搜索到,这里爬取了它的数据,希望它不要打我。
这里给大家列一些我觉得很好的找到 e-book 的网站,后期可能会写一些爬虫,作为插件,可以在 APP 里面提供搜索源选择。
https://ambry.pw/
http://ebookhunter.ch/
https://www.jiumodiary.com/
http://www.gutenberg.org/
https://bookfere.com/
后期的改进
这个 App 还十分简陋,因为本来是想重新学学 C 或者 C++的,结果中途去看了 C#的 UWP 程序,就捣鼓出了这么一个东西。 如果后期还有时间来捣鼓的话,一些可能改进的方向包括:
-
首先肯定就是完成设想里面的内容了。
-
有些网站有下载限制,例如现在 APP 里的书籍来源网站就规定非注册用户 24h 下载不能超过 5 本书。后期可能需要通过更改 ip 来绕开这个限制。
-
send/save to kindle/onedrive etc.
后记
个人是比较喜欢 UWP 程序的简洁性的,可能以后还会使用 C#和 XAML 的组合来写一些小 APP,主要是给自己写一些小工具。
备注:由于爬取的网站改版,现在这个 APP 已经失效了。