python 使用反向地理编码获取Magicbricks.com上的属性地址

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 使用反向地理编码获取Magicbricks.com上的属性地址相关的知识,希望对你有一定的参考价值。

"""
Project: Apartment Hunt

Get Address of properties on Magicbricks.com using Reverse-Geocoding

This script asks for the target property URL, reverse geocodes it 
and prints the address of the property

Need: Magicbricks map functionality doesn't let users get directions. 
Even the exact property address is not visible on the webpage.

"""

import re

import requests
from bs4 import BeautifulSoup
from geopy.geocoders import GoogleV3

# URL = ("http://www.magicbricks.com/propertyDetails/Paying-Guest-FOR-Rent-Saket-in-New-Delhi" + 
#        "&id=4d423139323339393233?from=search")

URL = raw_input("Enter Magicbricks Property URL: ")

def make_request(link):
    r = requests.get(link)
    soup = BeautifulSoup(r.text)
    return soup

def get_coords(soup):
    see_on_map_span = soup.find("span", {"class": "seeProOnMap"})
    temp_coords_list = see_on_map_span.a['onclick'].split('=')
    lat = temp_coords_list[2].split('&')[0]
    lng = temp_coords_list[3].split('&')[0]
    return lat, lng

def reverse_geocode(lat, lng):
    geolocator = GoogleV3()
    coords = ', '.join([lat, lng])
    location = geolocator.reverse(coords)
    return location

def main():
    soup = make_request(URL)
    lat, lng = get_coords(soup)
    location = reverse_geocode(lat, lng)
    print "\nAddress = ", location[0].address + "\n"

if __name__ == "__main__":
    main()

以上是关于python 使用反向地理编码获取Magicbricks.com上的属性地址的主要内容,如果未能解决你的问题,请参考以下文章

在 iPhone 上进行反向地理编码 - 获取准确的街道号码

使用 iPhone 的纬度和经度进行反向地理编码

使用谷歌地图地理编码器反向获取城市名称的简单功能

反向地理位置:邮政编码问题

从反向地理编码中获取地址

如何在 iOS 中使用反向谷歌地理编码?