一起学游泳吧
点我---->
游泳日报<-----点我!
满满的热爱之心。
缘起
作为一个游泳的狂热爱好者。狂热到恨不得每天都泡在水里。
被诊断为支气管炎的时候
双腿因为爬山废掉路都快走不动的时候
天降暴雨电闪雷鸣马路成海的时候
都义无反顾地冲去泳池
泡在水里……
这样自由随性的游了一年。
后来,
和一群游起来非常优雅漂亮的半职业运动员们一起游了几次
或者十几次
抑或几十次,之后
我觉得得好好学习下。
于是通过伟大的互联网,
在游泳梦工厂找到了很多
很多泳痴留下的武林秘笈。
欣喜异常!
但我觉得论坛上不好看……
于是诞生了把论坛上的帖子爬下来美化给自己看的愿望。
于是写了个爬虫……
后来,又想生成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
是主更新脚本。
update_index.py
和update_toc.py
分别更新首页和总目录页。
rebuild.sh
负责重新构建所有内容页面。
生成pdf部分
使用weasyprint
模块。
将视频替换为对应地址。
ps:开始使用xhtml2pdf
模块,这东西支持中文字体要改,最关键的是中文不换行!!!即使最后按网上找来的设置什么wordwrap为cjk还是不换行。总之不推荐。
其它
很多似乎需要优化的地方。
- 把html文本和程序分离出来比较合适。
- 命令行参数处理用argparse啥的处理应该更加优雅
- 原谅我渣一样的前端水平。
好吧,本渣只是一个script kid……