IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    游泳日报

    Reverland (lhtlyy@gmail.com)发表于 2014-10-09 00:00:00
    love 0

    一起学游泳吧

    点我---->游泳日报<-----点我!

    满满的热爱之心。

    缘起

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

    被诊断为支气管炎的时候

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

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

    都义无反顾地冲去泳池

    泡在水里……

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

    后来,

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

    或者十几次

    抑或几十次,之后

    我觉得得好好学习下。

    于是通过伟大的互联网,

    在游泳梦工厂找到了很多

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

    欣喜异常!

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

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

    于是写了个爬虫……

    后来,又想生成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还是不换行。总之不推荐。

    其它

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

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

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



沪ICP备19023445号-2号
友情链接