我对如何获得"位置"下的纬度和经度值感到困惑。在this网址上使用两个单独的xpath。
我用它来提取给定邮政编码坐标的这两个值。但是当我运行" scrapy crawl latlng -o coords.csv -t csv"时,coords.csv文件为空。所以我产生坐标的xpath或方法一定不正确
这是我的代码:
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
答案 0 :(得分:1)
如果你打算发布这个(http://maps.googleapis.com/maps/api/geocode/xml?address=27517)地址而不是你链接的地址,那么XPath就是:
/GeocodeResponse/result/geometry/location/lat
和
/GeocodeResponse/result/geometry/location/lng
如果你想用JSON做,那就不一样了。