shell google nginx linux wordpress Android 程序员 php HTML5 Ubuntu apache centos java 微软 linux命令 Firefox 开源 mysql Windows Python

将wordpress博客中的yupoo图片片下载至本地

2007年建立这个博客的时候,使用的还是虚拟主机,出于容量不够及备份等因素的考虑,当时我使用了Yupoo相册来保存及外链博客里的图片,6年过去了,博客里的这些图片仍然可以显示,外链的地址没有失效,说明Yupoo还是非常靠谱的。

但国内的互联网形势风云变幻,谁也说不准将来会发生什么事儿,曾经风极一时的拍拍乐(886.cn)到现在已经不能访问了,巴巴变也经历了数次改版,在2008年中旬,Yupoo进行了一次大的改变,限制了用户的外链,强行将外链的图片加上了广告,当时我还强烈的吐嘈了Yupoo一顿。从那时起,我就一直在思考,如何更好的保存博客中的图片.

2010年的时候,VPS兴起了,这个博客用上了Burst.net家的VPS,20G的空间,再也不用担心容量不够了。从那时起,也开始用博客自身的空间来保存图片了,在VPS上部署了备份脚本,这下再也不用担心数据丢失了。但有个显著的问题,以前博客用Yupoo外链的图片太多,要如何转移过来?一直到今天,写了这个Python脚本,解决了这个问题。

yupoo相册的图片地址类似于以下这几种:

  • http://pic.yupoo.com/用户名/xxxxxxxxxxxx/medium.jpg
  • http://pic.yupoo.com/用户名/xxxxxxxxxxxx/small.jpg
  • http://pic.yupoo.com/用户名/xxxxxxxxxxxx/xxxxxxxxx.jpg
  • http://photo14.yupoo.com/20070102/xxxx_xxxxxxx_xxxxxxx.jpg
  • http://photo15.yupoo.com/20080506/xxxx_xxxxxxx_xxxxxxx.jpg

经过脚本替换以后,数据库里的如上地址会被替换成:

  • /wp-content/uploads/yupoo/xxxxxx/xxxxx.jpg

即最后的图片名不会变,储存图片的目录也不会变。脚本会把数据库中的所有yupoo图片下载至本地的yupoo目录,把yupoo目录上传至博客的/wp-content/uploads/目录,然后,博客就彻底脱离了Yupoo!

脚本内容:

稍候呈上

将如上脚本保存一个yupoo.py文件,用phpmyadmin等工具,将数据库导出为一个a.sql文件,跟yupoo.py放在同一目录,然后执行python yupoo.py

然后,本地会多出如下内容

一个yupoo目录,里面的每个目录下都保存有一张图片,需要把yupoo目录上传至/wp-content/uploads/目录
一个download.txt文件,记录了所有yupoo图片链接
一个a1.sql文件,替换后的数据库,请将sql文件导入新数据库

然后,就可以彻底脱离yupoo相册了!

延伸阅读

评论