Задать вопрос

Ошибка в коде парсера, в чем ошибка?

Только начинаю знакомство с python, делал всё по примеру, подскажите как правильно определить 'tittle'

from bs4 import BeautifulSoup
import requests

def parse():
    URL = ''
    HEADERS = {
        ''
    }

    response = requests.get(URL, headers = HEADERS)
    soup = BeautifulSoup(response.content, 'html.parser')
    items = soup.findAll('div', class_ = 'offer-wrapper')
    comps = []

    for item in items:
        comps.append({
            'tittle' : item.find('a', class_ = 'marginright5 link linkWithHash detailsLink linkWithHashPromoted').get_text(strip = True)
        })

    for comp in comps:
        print(comp['title'])

parse()


5fadbba16966b094372545.png
  • Вопрос задан
  • 102 просмотра
Подписаться 1 Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 1
@Kamikaze
item.find('a', class_ = 'marginright5 link linkWithHash detailsLink linkWithHashPromoted').get_text(strip = True)

Недавно видел замечательное название подобной конструкции, "крушение поезда". Первый вагон свалился - весь состав под откос.
Суть в чем, метод find, если не находит то, что описано в условиях, вернет None, от чего метод get_text упадет, что у вас и случилось. По-хорошему, надо бы проверять, вернул ли что-то метод find и только если вернул, получать его текст.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы