Ответы пользователя по тегу Beautiful Soup
  • Как устранить такую ошибку Beautiful Soup is not an HTTP client?

    Что это?
    def get_item_title(resource_link,title_rule):
        soup = BeautifulSoup(resource_link,'lxml')
        item_title = soup.find(title_rule[0],{title_rule[1]:title_rule[2]})
        return item_title

    Вы передаёте в функцию список ссылок resource_link, и передаёте его как параметр в объект класса BeautifulSoup. Но bs4 работает с html документом, а не со списком.
    Ответ написан
  • Что делать если парсится только одна ссылка?

    P.S Ты уже надел с глупыми вопросами, ты где парсингу учился? Если сам, то кинь в комент как с тобой связаться, скину тебе хороший курс по парсингу на python. После его прохождения таких вопросов у тебя не останется.

    Ну во первых, лучше использовать 'lxml', вместо 'html.parser'(он быстрее), устанавливается через pip.
    Во вторых, когда ищешь по классу можно писать так:
    find_all('div', class_='numeration')

    Ну и в третьих ты делаешь неправильно, нужно сначала найти 'div', он один, а потом уже в нём искать все 'a':
    for d in soup.find('div', class_='numeration').find_all('a'):

    А ты делаешь так, но div с таким классом один.
    soup.find_all('div', {'class': 'numeration'})


    Вся функция целиком должна выглядеть так:
    def bf_parse(base_url, headers):
        session = requests.session()
        request = session.get(base_url, headers=headers)
        soup = bs(request.content, 'lxml')
        for d in soup.find('div', class_='numeration').find_all('a'):
            link = d.get('href')
            print("https://www.rosfirm.ru"+link)
    Ответ написан