Я пытаюсь получить данные и экспортировать в CSV, у меня есть главная страница URL и вторая главная страница URL. Теперь я пытаюсь получить «18.111» и «98.111» из этого html-класса:
<img class = "aaa" alt = "map" data-track-id = "static-map" width = "97" height = "142" src = "https://websitewithdetailsD&width=194&height=284&lat=18.111&lon=98.111&level=15&returnImage=true">
какой у меня код
for gps in secondpage_parser.find_all('img',{"class":"aaa"}, src=True):
parsed_url = urlparse(gps['src'])
mykeys = ['lat', 'lon']
gpslocation = [parse_qs(parsed_url.query)[k][0] for k in mykeys]
print(gpslocation)
Однако у него есть ошибка ключа в строке "gpslocation = [parse_qs (parsed_url.query) [k] [0] для k в mykeys]" когда я бегу.
Данные других частей, таких как Имя и Заголовок, работали, поскольку класс html не слишком сложен. Я хотел бы знать, в какой части здесь у меня есть ошибка или как мне ее исправить. Пожалуйста помоги.
@MoonsikPark Я новичок в Python и веб-скрейпинге. Не могли бы вы подробнее рассказать о TLD?
src = "https://websitewithdetailsD&width=194&height=284&lat=18.111&lon=98.111&level=15&returnImage=true"
parse_qs не может определить URL-адрес, потому что у него нет tld, например .com .net.
Мне очень жаль, я сократил URL-адрес. Вот полный URL-адрес: api.nostramap.com/Service/V2/MoreContent/… он указан в классе html, но когда я получаю доступ к реальной сети, это еще один, к которому можно получить доступ, это map.nostramap.com/NostraMap/?place/…
Ваш вопрос недостаточно ясен.
вы можете просто сделать это, используя разделение и замену следующим образом:
def get_lat_lon(tag):
for key_value in tag.split('src')[1].split(';'):
if 'lat' in key_value:
lat = key_value.split('=')[1].replace('&','')
if 'lon' in key_value:
lon = key_value.split('=')[1].replace('&','')
return lat, lon
lat,lon = get_lat_lon("""<img class = "aaa" alt = "map" data-track-id = "static-map" width = "97" height = "142" src = "https://websitewithdetailsD&width=194&height=284&lat=18.111&lon=98.111&level=15&returnImage=true">"""
)
print 'lat: ' + lat
print 'lon: ' + lon
Спасибо. Я новичок в питоне и этом. У него есть проблема с SyntaxError (недопустимый синтаксис) в "def get_lat_lon (tag)". Я не уверен, что это моя ошибка, что я поставил это неправильно. Поскольку я собираю данные с нескольких страниц веб-сайта, как я могу изменить формат, чтобы не указывать каждый URL-адрес в коде Python? (например, указать только класс)
Я не уверен, поместил ли я всю информацию, которая может вам понадобиться. Если вы хотите, чтобы я добавил что-нибудь еще, дайте мне знать. Здесь: docs.google.com/document/d/…
Вам нужно удалить все отступы в строках после строки, содержащей return.
Я обновил информацию. Пожалуйста, проверьте мою ссылку еще раз.
Обновленное изображение рабочего листа находится на второй странице документа Google. Если я не ошибаюсь, вы имеете в виду, что я убрал отступ во всех строках под Return?
URL-адрес имеет неправильный формат. у него нет tld.