Соскоб в Интернете - Получить текст из класса с помощью BeautifulSoup и Python?

Я хочу соскрести текст ("Показано 650 результатов") с веб-сайта.

Результат, который я ищу:

 Result : Showing 650 results

Ниже приведен HTML-код:

<div class="jobs-search-results__count-sort pt3">
            <div class="jobs-search-results__count-string results-count-string Sans-15px-black-55% pb0 pl5 pr4">
                Showing 650 results
            </div>

Код Python:

    response = requests.get(index_url)
    soup = BeautifulSoup(response.text, 'html.parser')
    text = {}
    link = "jobs-search-results__count-string results-count-string Sans-15px-black-55% pb0 pl5 pr4" 
    for div in soup.find_all('div',attrs={"class" : link}):
        text[div.text]
    text

Пока что похоже, что мой код не работает.

2 ответа

Решение
  1. Вам не нужно soup.find_all если вы ищете только один элемент, soup.find работает так же хорошо

  2. Ты можешь использовать tag.string/tag.contents/tag.text получить доступ к внутреннему тексту


div = soup.find('div', {"class" : link})
text = div.string

Старый: from BeautifulSoup import BeautifulSoup

«Разработка серии BeautifulSoup 3.x закончилась в 2011 году, и эта серия будет прекращена 1 января 2021 года, через год после даты закрытия Python 2».

Новый: from bs4 import BeautifulSoup

«BeautifulSoup — это библиотека, упрощающая сбор информации с веб-страниц. Она работает поверх парсера HTML или XML и предоставляет Pythonic идиомы для итерации, поиска и изменения дерева синтаксического анализа».

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