Python 导出微信电子相册中的照片

既然你能找到这里,我也就不问你是出于什么目的才要导出这些照片的了
来吧,先看效果图:
这里写图片描述
如果这是你想要的效果,那么OK,这个实现起来非常简单,你只需准备以下内容:

Before Coding

首先在浏览器上访问电子相册的Url,F12开发者工具,先来分析一下源码
这里写图片描述
哦,我的上帝!瞧瞧,我发现了什么,简直就是不设防,资源路径是如此的露骨,我们此行的目标就是通过这些Url来获取图片并保存到本地了!

Coding

编码之前,先在大脑里构想一下整体流程,理清思路:

  1. 通过电子相册url获取HTML代码
  2. 使用str.find()等方法,从HTML代码中提取图片Url
  3. 使用urllib.request.urlretrieve()方法,将图片写入到本地文件

1. spider.py

#coding=utf-8

import urllib
import time
import random
import http.cookiejar

# 伪装成浏览器获取指定url内容,中文转码
def get_html(url):
    cj = http.cookiejar.CookieJar()
    opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
    opener.addheaders = [('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.101 Safari/537.36'),('Cookie','4564564564564564565646540')]

    urllib.request.install_opener(opener)

    html_bytes = urllib.request.urlopen(url).read()
    html_string = html_bytes.decode('utf-8')
    return html_string

# 下载指定url资源,写入到本地目录(该目录需要提前创建好),获取系统时间戳作为文件名
def download_file(url):  
    t = time.time()
    file_name = int(round(t * 1000))
    try:
        urllib.request.urlretrieve(url,'/workspace/python/picture2/%s.jpg' % file_name)
    except Exception as e:
        pass
    print('Donwload picture %s.jpg' % file_name)

# 获取全部页面内容
html = get_html('https://wmml1.kagirl.cn/kphoto/gotoshow.php?bookid=dD2nhG888UwJRrUg6crMmUdZT1OtTXIuPVmwpJ5UxaM&wxid=wmml&shareid=&onmake=false')
# 过滤,锁定图片url代码段上下文
html = html[html.find('slider_images_url.push') : html.find('var date')]
# 整理,移除html中的无用字符,如单引号等,使用split()方法切割成数组
urlArray = html.replace('slider_images_url.push(', '').replace('\'','').split(');')
# 遍历数组 执行下载方法
for str in urlArray:
    download_file(str)

Console

执行Python代码,控制台打印信息:

Windows PowerShell
版权所有 (C) Microsoft Corporation。保留所有权利。

PS E:\workspace\python> cd 'E:\workspace\python'; ${env:PYTHONIOENCODING}='UTF-8'; ${env:PYTHONUNBUFFERED}='1'; & 'C:/Users/Dracarys/AppData/Local/Programs/Python/Python36/python.exe' 'C:\Users\Dracarys\.vscode\extensions\ms-python.python-2018.4.0\pythonFiles\PythonTools\visualstudio_py_launcher_nodebug.py' 'E:\workspace\python' '4585' '34806ad9-833a-4524-8cd6-18ca4aa74f14' 'RedirectOutput,RedirectOutput' 'e:\workspace\python\spider.py'
Donwload picture 1526714564235.jpg
Donwload picture 1526714564466.jpg
Donwload picture 1526714564824.jpg
PS E:\workspace\python>

顺利的话,相册中所包含的图片就已经被导出到你指定的文件夹了:
这里写图片描述

End

如果执行失败,可能是因为不同电子相册制作平台所生成的模板代码不同,导致获取不到指定的资源项,自行根据其HTML代码修改筛选逻辑即可。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值