Я использую этот веб-сайт для определения широты и долготы разных городов: https://www.latlong.net/.
Вот мой код:
import scrapy
import json
with open('C:/Users/coppe/tutorial/cities.json') as json_file:
cities = json.load(json_file)
class communes_spider(scrapy.Spider):
name = "geo"
start_urls = ['https://www.latlong.net/']
def parse(self, response):
for city in cities:
yield scrapy.FormRequest.from_response(response, formid='place', formdata={'place': city['city']}, callback=self.get_geo)
def get_geo(self, response):
yield {'coord': response.css('input::text').get()}
Код работает нормально, но выводполучить не правильно.Выходное значение по умолчанию (0,0) и должно быть что-то вроде (50.643909, 5.571560) после формы.Однако сканер все еще собирает (0,0) в качестве ответа.Я предполагаю, что проблема исходит от веб-сайта, но я не могу идентифицировать это.
Пример JSON:
[{"city": "Anvers, BE"},
{"city": "Gand, BE"},
{"city": "Charleroi, BE"},
{"city": "Li\u00e8ge, BE"},
{"city": "Ville de Bruxelles, BE"},
{"city": "Schaerbeek, BE"},
{"city": "Anderlecht, BE"},
{"city": "Bruges, BE"},
{"city": "Namur, BE"},
{"city": "Louvain, BE"},
{"city": "Molenbeek-Saint-Jean, BE"}]