文末抽奖|为我的祖国—中国,庆生!制作 1985-2020 年天安门花坛“巡演”的视频(详情)...

作者:HelloGitHub-卤蛋

躁动的心

满心欢喜的迎来了祖国的生日和 8 天长假,我的心情格外的愉悦。这种开心无处宣泄,总想“躁”一下????。然后我看到了一篇公众号(新闻联播)的文章,该文整理了 1986-2020 全部的国庆花坛照片,我看到后特别喜欢。但是文章是文字的形式,一直往下滑的阅读方式有点累,而且读起来不流畅。我想要是能做成视频是不是会好一些?

做成视频?我好像可以做,流程:

  1. 把所有图片下载下来

  2. 按照时间排序、命名

  3. 找个能够把照片做成视频的工具

现在是:2020 年 09 月 30 日凌晨 1 点多(国庆前一天),不睡了开干!

还好我会 Python

首先花坛的照片有 40 多张,我不想一个个的下载。那就需要分析下内容,看下有没有规律:

  1. 观察图片的链接的规律:进入浏览器的开发者模式,找到图片的地址:https://mmbiz.qpic.cn/xxx,好像图片地址长得都差不多。(有规律)

  2. 既然有规律那就用程序解析吧,先把内容保存起来:右键查看源码,复制全部内容到本地的文件wx.txt。(不需要解决怕网页的问题)

  3. 编写 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)

下载的图片如下:

下载到本地后发现很多是非花坛的图片,而且文件名不可用(不是按照年份递增),还需要总结下策略:

  1. 一个中国结一个国庆花坛图片。所以就可以用中国结的图片作为分割国庆花坛图片的标识符。

  2. 同一个年份可能会有多张照片(比如 1988 年),那么就增加个策略下载前检测这个年份是否有多张图片,如果是的话就加个时间后缀防止同名覆盖。

根据上述的规则,我优化下了代码。优化后重新下载图片如下(手动删除了几张无用照片):

视频虐我千百遍

嗯,有了素材。我就随便找了一个在线制作视频的网站,把刚才下载、过滤、整理后的图片上传,制作了个视频,最终版如下:

《为我的祖国庆生之 1986-2020 国庆天安门花坛“巡演”》

对我来说,下载图片很简单、但制作视频花了很多时间。制作、修改、生成(循环),最后弄完,抬头一看天亮了~????

做视频我是新手,只能不断修改、看效果,最总做出一个自己觉得还行的版本,昨天全网发布了。我看了大家评价和建议,我发现还有很多地方要学习和提高。谢谢大家的支持和建议,爱你们呦~

所有的图片我打包放在了百度云盘,需要的小伙伴自行获取(图片来自网络)。地址:

链接: https://pan.baidu.com/s/1crV0piANWxV5C40J00qY9w  密码: wjo6

最后,做完的视频我自己看了好几遍,由衷之言:飞速发展,日新月异。厉害了我的国!

这个通宵,值了~晚安????

「福利抽奖两重奏:今儿是现金,明儿是图书+现金」

(抽 5 个 18.8 元现金红包



关注公众号第一时间收到最新内容

“分享”让本文被更多人看到、“在看”支持我们、“阅读原文”获得完整代码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值