获取纬度和经度的Xpath

时间:2016-06-01 20:48:22

标签: google-maps xpath

我对如何获得"位置"下的纬度和经度值感到困惑。在this网址上使用两个单独的xpath。

我用它来提取给定邮政编码坐标的这两个值。但是当我运行" scrapy crawl latlng -o coords.csv -t csv"时,coords.csv文件为空。所以我产生坐标的xpath或方法一定不正确

这是我的代码:

使用GoogleMaps API查找给定zip的位置并提取纬度(lat)&经度(lng)与' latlng'蜘蛛

zipcode = raw_input('Zipcode: ')
latlngurl = 'http://maps.googleapis.com/maps/api/geocode/json?address=%s' % (zipcode,)
latitude = 35
longitude = -79

class Coordinates(scrapy.Item):
    Latitude = scrapy.Field()
    Longitude = scrapy.Field()

class LatlngSpider(scrapy.Spider):
    name = "latlng"
    allowed_domains = ["googleapis.com"]
    start_urls = (
    latlngurl,
)
    def parse(self, response):
        latitude = response.xpath('/GeocodeResponse/result/geometry/location/lng').extract()
        longitude = response.xpath('/GeocodeResponse/result/geometry/location/lat').extract()
    for element in range(0, 2, 1):
        coords = Coordinates()
        coords["Latitude"] = latitude.pop(0)
        coords["Longitude"] = longitude.pop(0)
        yield coords

1 个答案:

答案 0 :(得分:1)

如果你打算发布这个(http://maps.googleapis.com/maps/api/geocode/xml?address=27517)地址而不是你链接的地址,那么XPath就是:

/GeocodeResponse/result/geometry/location/lat

/GeocodeResponse/result/geometry/location/lng

如果你想用JSON做,那就不一样了。