游泳日报

Published on Oct 09, 2014

一起学游泳吧

点我---->游泳日报=<–—点我!=

满满的热爱之心。

缘起

作为一个游泳的狂热爱好者。狂热到恨不得每天都泡在水里。

被诊断为支气管炎的时候

双腿因为爬山废掉路都快走不动的时候

天降暴雨电闪雷鸣马路成海的时候

都义无反顾地冲去泳池

泡在水里……

这样自由随性的游了一年。

后来,

和一群游起来非常优雅漂亮的半职业运动员们一起游了几次

或者十几次

抑或几十次,之后

我觉得得好好学习下。

于是通过伟大的互联网,

在游泳梦工厂找到了很多

很多泳痴留下的武林秘笈。

欣喜异常!

但我觉得论坛上不好看……

于是诞生了把论坛上的帖子爬下来美化给自己看的愿望。

于是写了个爬虫……

后来,又想生成pdf,于是又折腾了下html转pdf。

后来,那阵经常刷知乎日报……于是又萌生了

制作=游泳日报=的想法。

最终写了一堆 脚本 来行使爬虫和静态页面生成的功能及其它辅助功能。

源码见https://github.com/reverland/topswim

静态页面见https://github.com/reverland/topswim/tree/gh-pages

具体实现

爬虫部分

不是啥优雅的方法。

使用=lxml=和=requests=,把论坛页面的内容抓下来然后加上自定的内容。自己定义css文件。

静态页面生成部分

首先是具体内容页面。根据爬取的内容,加上自定义的html内容。可能用jinja2啊什么模板什么的应该更优雅些,我这就以一种quick和dirty的脚本方式实现。

其次是首页生成方式。读取=rebuild.sh=文件取最新的六条生成首页。

最后是总目录页的生成。读取=rebuild.sh=内容获取所有内容。

辅助构建部分

=update.sh=是主更新脚本。

=updateindex.py=和=updatetoc.py=分别更新首页和总目录页。

=rebuild.sh=负责重新构建所有内容页面。

生成pdf部分

使用=weasyprint=模块。

将视频替换为对应地址。

ps:开始使用=xhtml2pdf=模块,这东西支持中文字体要改,最关键的是中文不换行!!!即使最后按网上找来的设置什么wordwrap为cjk还是不换行。总之不推荐。

其它

很多似乎需要优化的地方。

  1. 把html文本和程序分离出来比较合适。
  2. 命令行参数处理用argparse啥的处理应该更加优雅
  3. 原谅我渣一样的前端水平。

好吧,本渣只是一个script kid……