zd200572的个人博客分享 http://blog.sciencenet.cn/u/zd200572

博文

新浪相册导出小应用

已有 2148 次阅读 2019-5-22 08:58 |个人分类:IT|系统分类:科研笔记

最近网易和新浪相继宣布停止相册服务,不得不说一个时代过去了,相册,已经成为曾经的大门户网站放弃的弃子,博客,也不会太远了。相比网易的相册同步软件可以实现一键下载,新浪竟然只给一个包含全部相册网址的xml文件,不得不说,真没有大公司风范,至少花一点时间来个脚本,让大家一键下载成zip吧,这对于相册有大几百张的人来说简直是一种煎熬,当然,稍微整理一下放在可以批量下载的软件里下载也不错,一张张保存就要崩溃了。于是,我决定做一个。虽然,估计需要的人是少数。

获取xml文件

打开http://control.blog.sina.com.cn/riaapi/photoblog/photo_down.html ,选择导出博客图片的链接,保存就得到一个xml文件。
比如我的,放几行在这:

<?xml version="1.0" encoding="UTF-8"?>
<PhotoList>
  <name_默认专辑>
    <pic_0>http://s7.sinaimg.cn/orignal/001mNzgy6V5HgLZkyd6&amp;690</pic_0>

先说说我的处理过程

我写了个python小脚本批量下载这些图片,基于python3的,代码放在这,很简单的几行。

python3代码

遇到了点墙,主要是python3和python2的区别导致的,经过搜索后解决了。ps.python3需要导入urllib.request并且用也这样用。

# -*- coding: utf-8 -*-import os 
import timeimport urllib.requestdef get_pics():
    with open('博客相册图片列表.xml', encoding='utf-8') as f:        for line in f:            if 'pic_' in line:
                url = line.strip().split('>')[1].split('690')[0]                #print(url)
                file_name = url.split('sinaimg.cn/orignal/')[1].split('&amp')[0] + '.jpg'
                print('我在下载%s' % file_name)
                urllib.request.urlretrieve(url, file_name)
                time.sleep(6)

get_pics()
然后,下载cxfreeze,打包

pip install cx_Freeze
然后找到这个库的绝对路径,一般是Python安装路径下面的Scripts文件夹(比如:D:\Python34\Scripts),然后打开cmd/powershell来直接调用。

D:\Python34\Scripts\cxfreeze get_pics.py

然后就生成的可用的程序,在dist文件夹可以找到get_pics.exe的可执行文件。

使用方法

下载地址:https://github.com/zd200572/sina_pics_downloader/raw/master/sina_pics_download.zip
我已经把脚本打包成了zip,下载下来解压后,将 博客相册图片列表.xml放入解压后的文件夹双击即可运行,默认6s下载一张图片,欢迎使用。
友情提醒,官方说明,相册导出功能开放到2019年7月31日24时,请及时进行内容导出。




https://wap.sciencenet.cn/blog-623545-1180436.html

上一篇:ABO血型与SNP
下一篇:2019年主流测序仪参数对比
收藏 IP: 222.95.12.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (1 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-6-6 15:06

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部