爬取社交数据时,有时候会碰到用经纬度表示地理位置信息,这种情况下需要进行转换以获取地理位置信息。
例如获取到的数据是{"business_id":"1SWheh84yJXfytovILXOAQ","name":"Arizona Biltmore Golf Club","address":"2818 E Camino AcequiaDrive","city":"Phoenix","state":"AZ","postal_code":"85016","latitude":33.5221425,"longitude":112.0184807,"stars":3.0,"review_count":5,"is_open":0,"attributes":{"GoodForKids":"False"},"categories":"Golf,Active Life","hours":null},可以提取到维度是latitude:33.5221425,经度是112.0184807。要转换为具体的位置信息需要用到reverse_geocoder。
import reverse_geocoder as rg
if __name__ == '__main__' :
vv = (33.5221425, -112.0184807)
loc = rg.search ( vv )
print(loc)
city=loc[0]['name']#城市
county=loc[0]['admin2']#郡
state=loc[0]['admin1']#州
country=loc[0]['cc']#国家
print(country+","+state+","+county+","+city)
输出见下图: