利用Python制作文本小说

2017-03-14  本文已影响183人  卓千叶

关于技术的一点探讨

      本人也爱看一些稀奇古怪的小说吧,尤其是偏爱科幻小说,可是正版的条规不愿意花钱,只好在网络上找资源了,这里不得不感叹一下还是国内环境好啊,这些资源都可以找得到,只要肯下力气。本文作为一名Python的铁粉,对于用Python进行网络资源的爬去还是非常熟练的,因此便想到了用Python来爬取网站上的小说,然后制作完成后传到多看上阅读。      
      理想是美好的,现实是残酷的,我历时两天,写出了很多代码,结果仍不能算的是完美,接下来就说一下关于这段经历的具体纠葛。![](http://img3.imgtn.bdimg.com/it/u=640330160,2514427525&fm=23&gp=0.jpg)    
      多看阅读的度数体验确实很好,不过只支持`epub`和`TXT`格式,很让人发愁,`TXT`的电子书读起来一般般,效果不好,``epub``的阅读体验很好,于是便想着自己做一个``epub``电子书,在网上也是看了很多贴子,链接如下:    

http://www.pylist.com/topic/1439197138
http://blog.itpub.net/29733787/viewspace-1477082/
http://www.manuel-strehl.de/dev/simple_epub_ebooks_with_python.en.html

      结果是自己知道了```epub```格式是怎么做出来的,是怎么生成的,看完之后,自己就动手试了,按照人家的源代码,仔细研究,生成了```epub```格式电子书,结果多看不支持,文件有问题,只能说自己还是太菜,我决定还是先放弃,想要生成`epub`格式电子书要寻求第三方库的支持是个不错的选择。结果果然有很多以后的成果,想``mkepub``和`pypub`都是很成熟的作品。安装方法在`github`和各自的主页上都有着写,也是比较简单的。`pip install pypub`和`pip install mkepub`都是可以直接安装的,支持库也比较少。其实生成``epub``文件还是比较容易的,我也能生成,不知道那个支持文件有点问题,我不想再在这个上面耗太多时间,所以就放弃了,如果再来半天时间就差不多了。    

      用第三方库的感觉只能说恶心,不知道是我的问题还是库的问题,总之恶心,FUCK!,首先是`mkepub`库,看完库的简介和API后,用起来那是一个顺手,结果在最关键的地方,也就是add_page上出现了错误,最开始提示gbk无法解码,或者就是无法编码……,![](https://img.haomeiwen.com/i960630/34c4e4e7a6ea33a8?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)我一直以为是自己的电脑的编码的问题,但是差了很多的资料和相关博主,结果按照自己的理解和博客的方法都是没办法生成可以用的`epub`文件,当最终不报错了,我以为我成功了,把文件传到iBook和多看上打开,无法使用,把`epub`格式解压后,找到我写入的文件生成的html文件,一直提示页面渲染错误。我开始寻找bug,但是不是专业人才,也不知道html到底哪里的问题,尝试了很多办法,发现当写入的文件时英文时是可以用的,在生成的html文件中我检查页面,发现了lang=en的说明,我就知道我肯定没办法做出来了,这个库支持英文的不支持中文的。无法渲染中文,但是charset=‘utf-8’,我也实在不知道哪里错了。

      至此,我决定换个库,pypub出现在我面前,按照API看完了,然后使用一直提示importerror,FUCK!,![](https://img.haomeiwen.com/i960630/7fdfc21d7d0a1b0f.jpeg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)然后在github项目主页上,找到了,这个库只支持Python2.。。。。。。。    

我还能说什么呢。我想TXT其实也不是那么难用的吧,然后就是TXT文件的生成了,这个不需要很多步骤,只需要将所有章节的文章从html中解析出来,然后合并到一起就可以了。结果出乎我的所料,由于我之前并没有对章节做重视,结果就是我不知道章节的顺序……,然后只好在最开始的时候加上索引,然后把文件合并生成了TXT文件,到这里其实已经成功了。但是做事情就应该精益求精嘛。我发现再多看里没有办法生成章节目录,好吧,按照其他的小说的模式,发现章节想要生成出来,章节必须独立一行,然后又加上这个步骤,终于是生成了,至此目的达成。

      补充一点,为了防止网站上发小黄书,对于什么“se”、“ri”、“cao”、“sao”、“yin”等都只能用拼音显示,阅读体验太差。另外,从网页上爬下来的,会有很多冗余信息,错误的标点符号都需要处理。我是根据以为大神说的在fmddlmyy贴吧扎到了cnbook软件,进行的处理,不过用Python也可以,自己想偷偷懒,重要的是想赶紧阅读小说了,对文字的处理不知道又要好久……,用前人成果还是快了许多的。    

      总结起来,一是自己的技术有限,没能生成`epub`格式的文件,二是第三方库对于中文的支持还是不太靠谱,还是需要国内做的更好吧,三就是通过这次项目的经历,自己的技术也更加纯熟了,加油!!!    

      人生苦短,我用Python!    

附件:
小说网站:http://www.23us.com/
编码博客:http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/
http://www.cnblogs.com/fnng/p/5008884.html
`

上一篇下一篇

猜你喜欢

热点阅读