Форум программистов, компьютерный форум, киберфорум
Наши страницы
Python: Сети
Войти
Регистрация
Восстановить пароль
 
ZMEINNAYA_MORDA
0 / 0 / 0
Регистрация: 22.05.2019
Сообщений: 1
1

Beautiful Soup Python

22.05.2019, 20:45. Просмотров 280. Ответов 1
Метки tag, web (Все метки)

Я пишу программу открывающую все ссылки на указанной странице и выписывает те, у которых в url есть id= и т.д.
Но по какой-то причине в большинстве случаев выдается ошибка:
File "C:\Program Files\Python36\lib\site-packages\bs4\element.py", line 1016, in __getitem__
return self.attrs[key]
KeyError: 'href'
, отсылающая вот на этот кусок кода:
Python
1
2
3
4
5
6
7
8
def pars():
    r = requests.get(endurl)
    soup = BeautifulSoup(r.content, 'lxml')
    for tag_a in soup.find_all('a'):
        link = tag_a['href']
        if link.startswith('/'):
            link = endurl + link
            links.append(link)
на строку
Python
1
link = tag_a['href']
Я сперва думал, что это потому что на странице нет <a> или href, но оказалось, что нет. Что мне делать? Что не так?
P.S:юзаю bs4 и lxml.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.05.2019, 20:45
Ответы с готовыми решениями:

Python - момент истины. Python - как оружие возмездие против системы
Какие модули в python мне нужны для взлома баз данных? Перехвата информации? Внедрения в систему? ...

Cx_freeze python error in main script как исправить- Python
Пытался создать из .py .exe , но при запуске .exe получаю ошибку вот код setup.py from cx_Freeze...

Как из Python скрипта выполнить другой python скрипт?
Как из Python скрипта выполнить другой python скрипт? Если он находится в той же папке но нужно...

Что лучше учить Python 2 или Python 3?
хочу начать учить питон но полазив в нете, частенько попадалась информация что вроде как 2 будет...

Порт pyqt5 (python 3.5) программы на android - Python
Подскажите пожалуйста возможно ли программу написанную на python методами pyqt5 переделать под...

1
Garry Galler
2326 / 1749 / 660
Регистрация: 28.10.2013
Сообщений: 4,461
22.05.2019, 22:40 2
Цитата Сообщение от ZMEINNAYA_MORDA Посмотреть сообщение
но оказалось, что нет
Оказалось, что да.
И это не только у вас - это сплошь и рядом. Поэтому никто так как вы не делает: нужно всегда проверять наличие атрибута (если источник данных от вас не зависит) или использовать get со значением по умолчанию, прежде чем к нему обращаться.

P.S. А вообще BS такое УГ в сравнении с чистым питонистичным lxml. Но школьникам почему-то нравится.
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.05.2019, 22:40

Почему синтаксис Python 2.* и Python 3.* так отличается?
Привет! Решил на досуге заняться изучением Python'a. Читаю книгу по второму питону, а пользуюсь...

Парсинг Beautiful Soup 4 и Selenium.Webdriver
Здравствуйте, пишу парсер под сайт https://www.kimovil.com/ru/ и возникает проблема: товары...

Beautiful Soup - существует ли ограничения на длину получаемых данных?
Здравствуйте! Почему при парсинге html достается только часть данных, которые все лежат в одном...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru