如何鉴别朋友圈里的“晒照党”,60行Python代码帮你搞定!

使用Python解析朋友圈图片EXIF数据,揭秘拍摄地点与时间,验证旅行照片真实性。

“第372篇原创,阅读需要4分钟”

不知道小伙伴们的微信朋友圈里有没有经常晒自己出行照片或者是美食的朋友呢,有时候朋友会在朋友圈中晒出他们的美照,而且是反复的晒照片,人称“晒照党”。今天巴黎购物,明天布拉格漫步,后天瑞士滑雪。看的确实很让人羡慕,但是我很想知道他们晒的照片到底是真的,还是盗图的!

小编今天就带领大家用Python来破解朋友圈中图片的拍摄地点和拍摄时间,看看这些晒图党的是否真的这么潇洒自由,还是另有玄机...

01

如何获取信息

首先,大家需要了解,为什么我们能够获取这些信息呢,秘密就隐藏在大家平时拍摄的照片中,虽然大家平时都在拍照,但是通常通过手机或相机拍摄的图片中隐藏了照片的属性信息和拍摄数据,这些数据主要通过可交换图像文件格式(EXIF)来存储这部分信息,而这部分信息大家是在图片上看不到的,而大家平时传输的“原图”中就包含这些信息。

那么我们如何去解析这些数据呢,这就要用到exifread库,大家可以直接通过pip install的方式进行安装。接下来我们就需要利用exifread库来解析图片中的信息,程序如下所示:

上述程序中,我们利用exifread来解析图片信息,然后在img_info中获取我们需要的地理纬度和经度坐标信息以及拍摄的时间。但是由于exifread解析出来的纬度和经度都是以度分秒(DMS)的方式进行存储的,我们为了后面的逆地理编码,需要将纬度和经度转换为DDD的存储方式。

什么是度分秒的存储呢,我们日常见到的经纬度都是例如108.90593, 34.21630这样的DDD存储方式,而度分秒的存储方式为108度54分22.2秒,34度12分60.0秒。我们需要将DMS的存储转化为DDD的存储方式。程序如下所示:

上述程序中,我们对DMS存储方式中的度分秒,分别进行了转化,并进行相加转化为DDD存储方式。

02

逆地理编码

我们获得了转化后的经纬度坐标之后,接下来就是利用该坐标进行逆地理编码,什么是逆地理编码呢,就是通过已经知道的经纬度坐标,来获得对应的地址描述(如省市、街区、楼层、房间等)。这里我们调用的是百度地图API。

大家只需要去百度开发者平台申请一个API key,然后调用逆地理编码API的接口即可,接口信息如下:

http://api.map.baidu.com/reverse_geocoding/v3/?ak=您的ak&output=json&coordtype=wgs84ll&location=31.225696563611,121.49884033194

可以看出,我们需要对接口输入两个信息,一个是我们的API key,另一个就是我们的地理经纬度坐标,这样我们就可以通过接口,获取逆地理编码的位置信息,程序如下图所示:

03

实战运行一下

最后,我们来展示一下程序的运行效果吧,看看到底能否测出位置。

通过运行程序,大家可以看到拍摄的地理位置和时间都被正确的显示,小编测试了三张图片,全部都成功定位。大家也赶快下载程序,测试一下吧。

近期热门:

我用Python找到了隔壁蹭网妹子的QQ号

王一博、肖战  谁的颜值更高,Python告诉你

就这么简单!20行Python代码爬取腾讯视频

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值