【Python爬虫】第四课(查询照片拍摄地址)
首先,要能够查询到照片地址,查询的照片必须要开GPS拍,且上传时用原图……
查询图片的exif信息,使用exifread包
import exifread
img = exifread.process_file(open(path), 'rb') longitude = img['GPS GPSLongitude']
latitude = img['GPS GPSLatitude']
这里建议,可以找一个exif查看器上传一个图片看一看,对GPS GPSLongitude等信息有一个直观印象
到这里,我花费时间最长才发现的一个坑。现象是我写完后,读取结果总是[],print(resp.text)发现经纬度根本没有读进去。type(longitude)才发现这是<class 'exifread.classes.IfdTag'>对象。这才明白,我根本没有获取到值得原因。以后的教训是:对一个未用过的工具,可以一步步看下输出的结果是什么。
longitude_gps = longitude.values
latitude_gps = latitude.values
下一步,我一开始也不清楚,拿到的是度分秒的经纬度,需要转化为十进制的经纬度
转换公式为 度+分/60+秒/3600,得到longitude_new, latitude_news
吸取上一步教训,longitude_gps[0],longitude_gps[1],longitude_gps[2] 分别为度,分,秒,但要用.num方法获取值
按道理,我们已经将度分秒的经纬度进行了转换,用于最后一步。
import requests
import json url = 'https://restapi.amap.com/v3/geocode/regeo?key={}&location={}' #详见高德逆解析地理API文档
location = '{},{}'.format(longitude_new, latitude_news)
api_key = 'sdasadsadsad' #申请成为高德个人开发者。添加应用管理既可
resp = requests.get(url.format(api_key, location)) data = json.loads(resp.text)
address = data.get('regeocode').get('formatted_address')
print(address)
再回头看以上,还有两个问题是在实际测试中发现的。
1. 经纬度,高德提供小数点后6位, 因此要约一下,用round函数即可
2. longitude_gps[2] 在整数的时候没问题,但会遇到m/n的情况,这无法直接运算,会出现较大误差。更改为eval(str(latitude_gps[-1]))计算。
【Python爬虫】第四课(查询照片拍摄地址)的更多相关文章
- Python爬虫实战四之抓取淘宝MM照片
原文:Python爬虫实战四之抓取淘宝MM照片其实还有好多,大家可以看 Python爬虫学习系列教程 福利啊福利,本次为大家带来的项目是抓取淘宝MM照片并保存起来,大家有没有很激动呢? 本篇目标 1. ...
- Python爬虫进阶四之PySpider的用法
审时度势 PySpider 是一个我个人认为非常方便并且功能强大的爬虫框架,支持多线程爬取.JS动态解析,提供了可操作界面.出错重试.定时爬取等等的功能,使用非常人性化. 本篇内容通过跟我做一个好玩的 ...
- Python爬虫入门四之Urllib库的高级用法
1.设置Headers 有些网站不会同意程序直接用上面的方式进行访问,如果识别有问题,那么站点根本不会响应,所以为了完全模拟浏览器的工作,我们需要设置一些Headers 的属性. 首先,打开我们的浏览 ...
- 转 Python爬虫入门四之Urllib库的高级用法
静觅 » Python爬虫入门四之Urllib库的高级用法 1.设置Headers 有些网站不会同意程序直接用上面的方式进行访问,如果识别有问题,那么站点根本不会响应,所以为了完全模拟浏览器的工作,我 ...
- Python爬虫之爬取淘女郎照片示例详解
这篇文章主要介绍了Python爬虫之爬取淘女郎照片示例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 本篇目标 抓取淘宝MM ...
- Python爬虫教程-11-proxy代理IP,隐藏地址(猫眼电影)
Python爬虫教程-11-proxy代理IP,隐藏地址(猫眼电影) ProxyHandler处理(代理服务器),使用代理IP,是爬虫的常用手段,通常使用UserAgent 伪装浏览器爬取仍然可能被网 ...
- 手把手教你写电商爬虫-第四课 淘宝网商品爬虫自动JS渲染
版权声明:本文为博主原创文章,未经博主允许不得转载. 系列教程: 手把手教你写电商爬虫-第一课 找个软柿子捏捏 手把手教你写电商爬虫-第二课 实战尚妆网分页商品采集爬虫 手把手教你写电商爬虫-第三课 ...
- python爬虫入门四:BeautifulSoup库(转)
正则表达式可以从html代码中提取我们想要的数据信息,它比较繁琐复杂,编写的时候效率不高,但我们又最好是能够学会使用正则表达式. 我在网络上发现了一篇关于写得很好的教程,如果需要使用正则表达式的话,参 ...
- python爬虫入门之快递查询
现在快递遍布生活的角角落落,一个快递其实是信息的集合体,里面包含大量的物流信息,那能不能自己实现一个快递查询的小功能?答案是能的!现在也有别人整理好的快递查询api,比如说快递100,可以通过它提供的 ...
随机推荐
- Go-json解码到接口及根据键获取值
Go-json解码到接口及根据键获取值 package main import ( "encoding/json" "fmt" "github.com ...
- Go类型别名与类型定义区别
类型别名和自定义类型区别 自定义类型 //自定义类型是定义了一个全新的类型 //将MyInt定义为int类型 type MyInt int 类型别名 //类型别名规定:TypeAlias只是Type的 ...
- MongoDB实现评论榜
Mongodb很适合做这件事,api的调用仅仅是使用到了入门级别的CRUD,理清楚了思路,编码也会顺风顺水,所以你会发现我在这篇博客中说的比编码还多 评论榜预期的功能 就像是StackOverFlow ...
- 记录一次Jquery中 this 关键字使用出现的问题
今天在用Jquery改造之前的JS代码过程中,遇到了一个让我懵逼了三小时的问题. 问题的关键在 this 的使用.在这里与大家分享一下.并且分享一下我做表单提交的检查代码 错误代码如下: $(&quo ...
- v语言怎么玩
直接上github: https://github.com/vlang/v 前戏 大概是在6月份的时候,在github上看到了这个玩意,我以为是??? 我下意识的去查了一下有没有人在讨论这个语言,但是 ...
- Flink的TaskManager启动(源码分析)
通过启动脚本已经找到了TaskManager 的启动类org.apache.flink.runtime.taskexecutor.TaskManagerRunner 来看一下它的main方法中 最后被 ...
- unity_小功能实现(敌人巡逻功能)
利用NavMeshAgent控制敌人巡逻,即敌人在一组位置间循环巡逻. 首先我们要知道NavMeshAgent中有两个方法:1.锁定当前巡逻的某一目标位置,即navMeshAgent.destinat ...
- Python之流程控制——if...else...
Python之流程控制--if...else... 一.流程控制 假如把程序比做走路,那我们到现在为止,一直走的都是直路,还没遇到过分岔口.当遇到分岔口时,你得判断哪条岔路是你要走的路,如果我们想让程 ...
- 你真的了解Mybatis的${}和#{}吗?是否了解应用场景?
转自:https://www.cnblogs.com/mytzq/p/9321526.html 动态sql是mybatis的主要特性之一.在mapper中定义的参数传到xml中之后,在查询之前myba ...
- 持续集成高级篇之Jenkins资源调度
系列目录 之前的示例我们主要关注点在于功能的实现,都是在一个节点的完成了.有了多个节点后,必须涉及到资源的调度问题.本节我们讲解在创建任务时与资源调度的有关选项以及一些平时没有注意到的但在生产环境需要 ...