Есть ключевая ошибка при веб-парсинге с использованием Python

Я пытаюсь получить данные и экспортировать в 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&amp;width=194&amp;height=284&amp;lat=18.111&amp;lon=98.111&amp;level=15&amp;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 не слишком сложен. Я хотел бы знать, в какой части здесь у меня есть ошибка или как мне ее исправить. Пожалуйста помоги.

URL-адрес имеет неправильный формат. у него нет tld.

user10356004 13.09.2018 09:21

@MoonsikPark Я новичок в Python и веб-скрейпинге. Не могли бы вы подробнее рассказать о TLD?

Meekao 13.09.2018 09:25
src = "https://websitewithdetailsD&amp;width=194&amp;height=28‌​4&amp;lat=18.111&amp‌​;lon=98.111&amp;leve‌​l=15&amp;returnImage‌​=true" parse_qs не может определить URL-адрес, потому что у него нет tld, например .com .net.
user10356004 13.09.2018 09:27

Мне очень жаль, я сократил URL-адрес. Вот полный URL-адрес: api.nostramap.com/Service/V2/MoreContent/… он указан в классе html, но когда я получаю доступ к реальной сети, это еще один, к которому можно получить доступ, это map.nostramap.com/NostraMap/?place/…

Meekao 13.09.2018 09:34

Ваш вопрос недостаточно ясен.

jxpython 13.09.2018 15:16
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
5
284
1

Ответы 1

вы можете просто сделать это, используя разделение и замену следующим образом:

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('&amp','')
        if 'lon' in key_value:
            lon = key_value.split('=')[1].replace('&amp','')
    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&amp;width=194&amp;height=284&amp;lat=18.111&amp;lon=98.111&amp;level=15&amp;returnImage=true">"""
)
print 'lat: ' + lat
print 'lon: ' + lon

Спасибо. Я новичок в питоне и этом. У него есть проблема с SyntaxError (недопустимый синтаксис) в "def get_lat_lon (tag)". Я не уверен, что это моя ошибка, что я поставил это неправильно. Поскольку я собираю данные с нескольких страниц веб-сайта, как я могу изменить формат, чтобы не указывать каждый URL-адрес в коде Python? (например, указать только класс)

Meekao 13.09.2018 09:51

Я не уверен, поместил ли я всю информацию, которая может вам понадобиться. Если вы хотите, чтобы я добавил что-нибудь еще, дайте мне знать. Здесь: docs.google.com/document/d/…

Meekao 13.09.2018 10:18

Вам нужно удалить все отступы в строках после строки, содержащей return.

Walid Da. 13.09.2018 10:22

Я обновил информацию. Пожалуйста, проверьте мою ссылку еще раз.

Meekao 13.09.2018 10:30

Обновленное изображение рабочего листа находится на второй странице документа Google. Если я не ошибаюсь, вы имеете в виду, что я убрал отступ во всех строках под Return?

Meekao 13.09.2018 11:42

Другие вопросы по теме