日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【文末赠书】我背着女朋友,用 Python 偷偷抓取了她的行踪

發布時間:2024/5/14 python 67 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【文末赠书】我背着女朋友,用 Python 偷偷抓取了她的行踪 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1

目 標 場 景

有時候女朋友一個人在外面玩耍,問她在哪個地方,就是不告訴我。但是,你又很想知道女朋友的「位置」,這該如何是好?

其實你可以這樣套路女朋友,假裝自己在家很無聊,可以幫她修圖,讓她微信發原圖給你,拿到「微信原圖」后,你就可以利用 Python 快速獲取到女友的具體位置了。

2

準 備 工 作

首先,在虛擬環境中安裝識別圖片元數據的庫。

pip3?install?exifread

然后,進入高德開放平臺,申請一個 Web 服務的應用,獲取到一個 「Key」用于逆地理編碼 API。

3

編? 寫? 腳? 本

整個操作分為 3 步驟,分別是獲取圖片的經度和緯度、對經度和緯度進行數據矯正、調用高德逆地理編碼 API 獲取具體位置。

第 1 步,獲取圖片的「經度和緯度」。

使用?exifread 庫可以直接讀取圖片文件,獲取到圖片的元數據,包含經度、緯度、南北緯方向、東西經方向和拍攝時間。

#?使用?exifread?獲取圖片的元數據 img_exif?=?exifread.process_file(open(self.img_path,?'rb'))#?能夠讀取到屬性 if?img_exif:#?緯度數latitude_gps?=?img_exif['GPS?GPSLatitude']#?N,S?南北緯方向latitude_direction?=?img_exif['GPS?GPSLatitudeRef']#?經度數longitude_gps?=?img_exif['GPS?GPSLongitude']#?E,W?東西經方向longitude_direction?=?img_exif['GPS?GPSLongitudeRef']#?拍攝時間take_time?=?img_exif['EXIF?DateTimeOriginal']

如果元數據存在,然后判斷拍攝時間是否合理。如果拍攝時間不在今天,那只能很遺憾地通知你,你的女朋友在向你撒謊「撒謊」。

def?judge_time_met(self,?take_time):"""判斷拍攝時間是否是在今天:param?take_time::return:"""#?拍攝時間format_time?=?str(take_time).split("?")[0].replace(":",?"-")#?當天日期today?=?str(datetime.date.today())if?format_time?==?today:return?Trueelse:return?Falseif?is_lie:print('很遺憾的通知你,你的女朋友在撒謊!!!')return

如果女友沒有撒謊,那么可以進行第 2 步的操作。

因為通過 GPS 獲取的經度、緯度和高德地圖的坐標存在一定的誤差,這里需要把坐標轉換為「火星坐標系」。

x_pi?=?3.14159265358979324?*?3000.0?/?180.0 pi?=?3.1415926535897932384626??#?π a?=?6378245.0??#?長半軸 ee?=?0.00669342162296594323??#?扁率def?wgs84togcj02(lng,?lat):"""WGS84轉GCJ02(火星坐標系):param?lng:WGS84坐標系的經度:param?lat:WGS84坐標系的緯度:return:"""if?out_of_china(lng,?lat):??#?判斷是否在國內return?lng,?latdlat?=?transformlat(lng?-?105.0,?lat?-?35.0)dlng?=?transformlng(lng?-?105.0,?lat?-?35.0)radlat?=?lat?/?180.0?*?pimagic?=?math.sin(radlat)magic?=?1?-?ee?*?magic?*?magicsqrtmagic?=?math.sqrt(magic)dlat?=?(dlat?*?180.0)?/?((a?*?(1?-?ee))?/?(magic?*?sqrtmagic)?*?pi)dlng?=?(dlng?*?180.0)?/?(a?/?sqrtmagic?*?math.cos(radlat)?*?pi)mglat?=?lat?+?dlatmglng?=?lng?+?dlngreturn?[mglng,?mglat]

另外需要注意的是,接口中經度、緯度參數只能識別小數點后 6 位,需要對經緯度中的度、分、秒做一定的數據處理,然后再進行四舍五入。

def?__format_lati_long_data(self,?data):"""對經度和緯度數據做處理,保留6位小數:param?data:?原始經度和緯度值:return:"""#?刪除左右括號和空格data_list_tmp?=?str(data).replace('[',?'').replace(']',?'').split(',')data_list?=?[data.strip()?for?data?in?data_list_tmp]#?替換秒的值data_tmp?=?data_list[-1].split('/')#?秒的值data_sec?=?int(data_tmp[0])?/?int(data_tmp[1])?/?3600#?替換分的值data_tmp?=?data_list[-2]#?分的值data_minute?=?int(data_tmp)?/?60#?度的值data_degree?=?int(data_list[0])#?由于高德API只能識別到小數點后的6位#?需要轉換為浮點數,并保留為6位小數result?=?"%.6f"?%?(data_degree?+?data_minute?+?data_sec)return?float(result)

第 3 步,調用高德的反地理編碼 API,傳入申請的應用 Key,就能拿到女朋友的詳細地址。

def?__get_address(self,?location):"""根據坐標得到詳細地址:param?location:?經緯度值:return:"""resp?=?requests.get(self.url_get_position.format(self.api_key,?location))location_data?=?json.loads(resp.text)address?=?location_data.get('regeocode').get('formatted_address')return?address

4

結 果 結 論

確保圖片是原圖的基礎上,可以快速幫你判斷女朋友是否在撒謊;如果女朋友沒有撒謊,就返回女朋友具體的位置。

全部源碼已上傳到后臺上,關注公眾號后回復「?圖片定位?」即可獲得。

[ 完 ]

今日贈送書籍

Python網絡爬蟲從入門到實踐

內容簡介: 本書講解了如何使用Python編寫網絡爬蟲,涵蓋爬蟲的概念、Web基礎、Chrome、Charles和Packet Capture抓包、urllib、Requests請求庫、lxml、Beautiful Soup、正則表達式解析數據、CSV、Excel、MySQL、Redis、MongoDB保存數據、反爬蟲策略應對、爬蟲框架Scrapy的使用與部署,以及應用案例。
今日留言主題
你用Python做過哪些有趣的事情?

總結

以上是生活随笔為你收集整理的【文末赠书】我背着女朋友,用 Python 偷偷抓取了她的行踪的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。