作者:HelloGitHub-卤蛋
躁动的心
满心欢喜的迎来了祖国的生日和 8 天长假,我的心情格外的愉悦。这种开心无处宣泄,总想“躁”一下????。然后我看到了一篇公众号(新闻联播)的文章,该文整理了 1986-2020 全部的国庆花坛照片,我看到后特别喜欢。但是文章是文字的形式,一直往下滑的阅读方式有点累,而且读起来不流畅。我想要是能做成视频是不是会好一些?
做成视频?我好像可以做,流程:
把所有图片下载下来
按照时间排序、命名
找个能够把照片做成视频的工具
现在是:2020 年 09 月 30 日凌晨 1 点多(国庆前一天),不睡了开干!
还好我会 Python
首先花坛的照片有 40 多张,我不想一个个的下载。那就需要分析下内容,看下有没有规律:
观察图片的链接的规律:进入浏览器的开发者模式,找到图片的地址:
https://mmbiz.qpic.cn/xxx
,好像图片地址长得都差不多。(有规律)既然有规律那就用程序解析吧,先把内容保存起来:右键查看源码,复制全部内容到本地的文件
wx.txt
。(不需要解决怕网页的问题)编写 Python 程序把图片下载下来。
通过正则表达式:https://mmbiz[^\s]*"
过滤出图片的地址,代码:
pattern = re.compile(r'https://mmbiz[^\s]*"')
with open("vx.txt", "r") as fb:
urls = pattern.findall(fb.read())
print(len(urls), urls)
输出:82 ['https://mmbiz.qpic.cn/xxx?wx_fmt=png"', ..., 'https://mmbiz.qpic.cn/xxx?wx_fmt=png"']
过滤出 82 个 URL 貌似有些多,先下载下来看看图片啥样子,下载图片代码如下:
def download(name, url):
rs = requests.get(url)
if rs.status_code == 200:
file_name = "{}.png".format(name)
with open('/Users/xueweihan/Desktop/pic/' + file_name, 'wb+') as f:
for chunk in rs:
f.write(chunk)
print('download {} finish'.format(file_name))
else:
print("download: name: {} url:{}, status_code:{} error", name, url,
requests.status_codes)
下载的图片如下:
下载到本地后发现很多是非花坛的图片,而且文件名不可用(不是按照年份递增),还需要总结下策略:
一个中国结一个国庆花坛图片。所以就可以用中国结的图片作为分割国庆花坛图片的标识符。
同一个年份可能会有多张照片(比如 1988 年),那么就增加个策略下载前检测这个年份是否有多张图片,如果是的话就加个时间后缀防止同名覆盖。
根据上述的规则,我优化下了代码。优化后重新下载图片如下(手动删除了几张无用照片):
视频虐我千百遍
嗯,有了素材。我就随便找了一个在线制作视频的网站,把刚才下载、过滤、整理后的图片上传,制作了个视频,最终版如下:
《为我的祖国庆生之 1986-2020 国庆天安门花坛“巡演”》
对我来说,下载图片很简单、但制作视频花了很多时间。制作、修改、生成(循环),最后弄完,抬头一看天亮了~????
做视频我是新手,只能不断修改、看效果,最总做出一个自己觉得还行的版本,昨天全网发布了。我看了大家评价和建议,我发现还有很多地方要学习和提高。谢谢大家的支持和建议,爱你们呦~
所有的图片我打包放在了百度云盘,需要的小伙伴自行获取(图片来自网络)。地址:
链接: https://pan.baidu.com/s/1crV0piANWxV5C40J00qY9w 密码: wjo6
最后,做完的视频我自己看了好几遍,由衷之言:飞速发展,日新月异。厉害了我的国!
这个通宵,值了~晚安????
「福利抽奖两重奏:今儿是现金,明儿是图书+现金」
(抽 5 个 18.8 元现金红包)
关注公众号第一时间收到最新内容
“分享”让本文被更多人看到、“在看”支持我们、“阅读原文”获得完整代码。