将微信公众号内容制作成电子书

微信公众号是个毒瘤,因为它封闭的生态系统阻止了信息的流通。
但是的确有一些不错的公众号。最近一个朋友就推荐了我一个写晚清历史的公众号,从宗教战争的角度看晚清,观点很有趣。
但如果在手机上看完这几十篇文章我的眼睛估计会瞎掉。
所以我就花了点时间写了这样一个脚本,可以把微信公众号在传送门上的镜像抓取下来生成电子书。
之所以选择爬传送门,是因为听说腾讯反爬虫很严厉。

源代码在此: https://github.com/fqx/chuansongme2ebook

这个脚本重用了很多我之前另一个项目的代码,因此明显可以看得出来变量命名规则的改变。
我也尝试着用面向对象的方式来写这个脚本,虽然不是很成功。
比较值得高兴的是,这次完成了对图片的处理,方法比之前预期的要简单一些。
对微信公众号这种图片比较多的平台特别有意义。

解析部分(simplify_html 函数)针对我要抓的那个公众号做了优化,各位可根据自己的实际需求修改。
爬完后用kindlegen可以生成mobi格式的电子书。

Kindle Paperwhite

IMG_1402

今天早上Paperwhite送到,把玩了半天,现在总结一下。the Verge等媒体已经说过的东西我就不再重复了。

优点:

  • 外壳比touch感觉高档多了,不再像是一个塑料玩具。虽然其实还是塑料。
  • 由于电容屏的使用,屏幕周围的边框没原来那么深,感觉好一些。
  • 反应速度明显比touch快,不用hack就支持中文,界面也对触摸屏做了优化,按钮变大了。
  • 背光虽然不是完全均匀(跟iPad什么的没法比),也不至于影响到阅读。绝对不会刺眼。
  • 电力不需要纠结。

缺点:

  • 容量比touch小,虽然目前还看不出会有什么严重问题。
  • 没音频输出,不仅不能听mp3,连有声书和TTS都没了。
  • 屏幕没有touch光滑,在选取文字的时候不太习惯。
  • 虽然分辨率提升了,对文字提升其实不是很明显,拿The Economist的图片对比,似乎由于源文件质量就不好,区别并不大。不如kindle for iPad版本的图片解析度高。
  • PDF仍然有巨大的白边。

更多照片在这里

对Kindle抓包后的几点笔记

由于我的Kindle推送几天都不能正常使用,决定抓包看看是什么原因。第一嫌疑犯就是GFW。
抓包的结果很有趣。

  • kindle会定期解析一个域名dogvgb9ujhybx.cloudfront.net,但是从来没有访问这个域名,我猜测这个是用来测试网络是否正常的。
  • 它会定期发送一个相同的UDP包裹给107.22.160.76或107.22.160.70,因为没有DNS Lookup记录所以不知道究竟是谁的服务。但IP本身是属于Amazon AWS的。没有返回的包,我也不知道这个是不是越狱带来的。
  • kindle检查是否有推送的文档是通过todo-g7g.amazon.com,这个域名的IP有很多个,所以我把这个域名用Dnsmasq固定到一个IP以后把这个IP加入VPN的路由表,于是推送就正常了。固定IP有个坏处,以后这个固定的IP万一不能用了又会碰上无法推送的问题,虽然更新一下就能用但很容易忘记自己一开始指定过。
  • 下载书是通过cde-g7g.amazon.com服务器完成,有相当多的TCP Dup ACK和 Out-Of-Order错误,但好歹能下载完成。
  • kindle会在没有上下文的情况下向72.21.194.2 72.21.214.149 72.21.210.247发送TCP RST包。