请停止无效努力-读书简记 麦肯基疗法-读书简记 跟简七学理财-课程简记 指数基金投资指南(2017中信版)-读书简记 指数基金投资指南(2015雪球版)-读书简记 让大脑自由:释放天赋的12条定律-读书简记 养育的选择-读书简记 GPU高性能编程CUDA实战-读书简记 百万富翁快车道-读书简记 原则-读书简记 穷查理宝典-读书简记 C++并发编程实战-读书简记 哲学家们都干了些什么-读书简记 Effective C++-读书简记 通往财富自由之路-读书简记 Linux命令行与Shell脚本编程大全-读书简记 刻意练习-读书简记 写给大家看的设计书-读书简记 习惯的力量-读书简记 好好学习-读书简记 硅谷最受欢迎的情商课-读书简记 富爸爸,穷爸爸-读书简记 如何说孩子才会听,怎么听孩子才会说-读书简记 阻力最小之路-读书简记 ProGit-读书简记 思考:快与慢-读书简记 C语言深度剖析-读书简记 编程珠玑-读书简记 Head First 设计模式-读书简记 反脆弱-读书简记 我的阅读书单 小强升职记-读书简记 观呼吸-读书简记 黑客与画家-读书简记 晨间日记的奇迹-读书简记 如何高效学习-读书简记 即兴的智慧-读书简记 精力管理-读书简记 C++编程思想-读书简记 拖延心理学-读书简记 自控力-读书简记 伟大是熬出来的-读书简记 生命不能承受之轻-读书简记 高效能人士的七个习惯-读书简记 没有任何借口-读书简记 一分钟的你自己-读书简记 人生不设限-读书简记 暗时间-读书简记

豆瓣离线备份-Shell脚本

2017年03月14日

出发点


由于最近一直忙于学业,码代码的手犯痒了,博客也好久没有进行更新,今天忙里偷闲来点干货。一直都觉得重要的东西放别人家的服务器上有点不踏实,用豆瓣做个人读书系统管理特别方便,于是,今天花了几个小时把豆瓣上的个人读书数据进行了完整的本地离线备份。不多说,上干货。

干货


#作者:冰蓝

#豆瓣个人域名,可通过个人主页的网址查询,例如本人主页地址为https://www.douban.com/people/lanbing510/,域名为lanbing510
user=lanbing510


#下载网页
wget --recursive --no-clobber --page-requisites --html-extension --convert-links --restrict-file-names=windows --no-parent https://book.douban.com/people/$user/


#提取网页中需要的元素并下载到本地
for postfix in jpg js png
do
    find ./ -type f -name "*.html" -exec cat {} \; | grep "\.$postfix" | sed "s/\(.*\)src=\"\(.*\.$postfix\)\"\(.*\)/\2/g" | grep "http" | grep "doubanio" >$postfix.txt
done

for postfix in css ico
do
    find ./ -type f -name "*.html" -exec cat {} \; | grep "\.$postfix" | sed "s/\(.*\)href=\"\(.*\.$postfix\)\"\(.*\)/\2/g" | grep "http" | grep "doubanio" >$postfix.txt
done

for postfix in jpg css js png ico
do
    sort -k2n $postfix.txt | uniq >$postfix-out.txt
done

for f in jpg-out.txt css-out.txt js-out.txt png-out.txt ico-out.txt
do
    for line in $(cat $f)
    do
        dest=${line#*/}
        wget -c $line -P  ./book.douban.com/people/lanbing510${dest%/*}
    done
done


#替换网页中的链接为本地链接
for postfix in jpg js png
do
    find ./ -type f -name "*.html" -exec sed -i "s/\(.*\)src=\"https:\/\/\(.*\.$postfix\)\(.*\)/\1src=\"\.\/\2\3/g" {} \;
done

for postfix in css ico
do
    find ./ -type f -name "*.html" -exec sed -i "s/\(.*\)href=\"https:\/\/\(.*\.$postfix\)\(.*\)/\1href=\"\.\/\2\3/g" {} \;
done

find ./ -type f -name "*.html" -exec sed -i "s/\(.*\)href=\"https:\/\/book\.douban\.com\/people\/$user\/\(.*\)/\1href=\"\2/g" {} \;


#清理中间文件
for postfix in jpg js png css ico
do
    rm $postfix.txt
    rm $postfix-out.txt
done


#完成
echo "success :)"


以上。


版权声明:本文为博主原创文章,转载请注明出处 本文总阅读量    次