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

BS4 не видит полный код страницы?

Пример страницы https://zarabotay-na-domu.ru/c52-235697.html
имеет такой блок кода
<index>
    <h1 class="message_title">Зарабатываем дома по интернету.</h1>
    <div class="message_text">
    Моё предложение для тех, кто ищет возможности зарабатывать дома. <br>
     Хотите стать менеджером интернет-магазина нашей компании? <br>
     Вы сможете зарабатывать с нуля и до 1 000, 2 000 или 3 000 долларов, <br>
     - Ваша зарплата зависит от Вашей активности. <br>
     Есть система обучения и сопровождения до результата, Вы можете развиваться<br>
     по карьере. За отличные результаты есть премии и бонусы. <br>
     Самое главное, что Вы ничем не рискуете. . . ну разве что разбогатеть! <br>
     Бизнес легальный и честный. Пишите!</div>
    <div class="cat_fields"></div>
    </index>


Пытаюсь получить текст из блока с классом "message_text"

def get_html(url):
        r = session.get(url, headers=headers)
        return r.text
    
    soup = BeautifulSoup(get_html(url), 'lxml')
    post_text = soup.find('div', {'class': 'message_text'})
    print(post_text)


Получаю только это:
Бизнес легальный и честный. Пишите!</div>

Если распечатать содержимое html
print(get_html(url))
Код получается не полный
Однако, если сохранить файл с кодом страницы
with open(file_name, 'w') as f:
        f.write(get_html(url))


то в файле присутствует все необходимое.

В чем может быть проблема???
  • Вопрос задан
  • 256 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Однако, если сохранить файл с кодом страницы то в файле присутствует все необходимое.

Значит дело не в BS, а в том как ты выводишь содержимое в консоль.
Подскажу в чём может быть дело:
>>> print("foo\rbar")
bar

Символ \n - это перевод строки, но \r - возврат каретки. Если в искомой строке есть \r, но нет \n, то все строки будут выводиться поверх друг друга.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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