Проблема с некорректной работой bs4 BeautifulSoup

response = requests.get(main_page)
html = response.content
html

Выдает, соответственно, неформатированный html файл. И, казалось бы, BeautifulSoup должен сделать из этого структурированное дерево

soup = BeautifulSoup(html,'lxml')
soup

Однако результат все еще остается неструктурированным (html.parser, кстати, не был видел для программы, что странно, пришлось скачивать отдельно, но результаты оказались теми же). После этого я попробовал использовать этот кусок, чтобы проверить работает ли библиотека вообще:

soup.html.head.title

И все-таки текст она выдает заголовка, однако, тэги расположены прямо у краев строки, чего быть не должно:

<title>42 870 объявлений - Купить 1-комнатную или 2-комнатную квартиру в Москве, недорого - база объявлений ЦИАН</title>

При последующих попытках с soup.find программа вообще перестала что либо выдавать. Друзья, я не смог найти хоть немного похожую проблему, может кто-нибудь знает ответ на эту мистику?

В комментариях мне подсказали, что надо бы указать ссылку на сайт, поэтому вот фрагмент:

В обучающих целях использовал сайт циана:

main_page = 'https://www.cian.ru/cat.php?deal_type=sale&engine_version=2&offer_type=flat&region=1&room1=1&room2=1' 
response = requests.get(main_page)
html = response.content
soup = BeautifulSoup(html,'lxml')
soup

И html.content и soup выдают неструктурированные данные При попытке выгрузки оттуда по find ничего не происходит:

obj = soup.find('div', attrs={'class':"serp-item__price-col"})

Юпитер плюется и говорит, что переменная obj является NoneType


Ответы (2 шт):

Автор решения: Sergey Glukhov

Если правильно пронял суть вашей проблемы, то не получается избавится от тегов <title>

Как вариант решения данной проблемы то можно сделать так:

from bs4 import BeautifulSoup
import requests


main_page = 'https://www.cian.ru/cat.php?deal_type=sale&engine_version=2&offer_type=flat&region=1&room1=1&room2=1'
response = requests.get(main_page)
html = response.content
soup = BeautifulSoup(html, 'html.parser')
print(soup.title.get_text())

Ответ выглядит следующим образом

42 309 объявлений - Купить 1-комнатную или 2-комнатную квартиру в Москве, недорого - база объявлений ЦИАН

Пример работы данного метода можно найти в документации тут.

→ Ссылка
Автор решения: George

Проблема оказалась проще, чем ожидалось. В общем, как я понял, проблема была не в библиотеке, а в самом питоне. Скорее всего терялись пакеты библиотеки из-за неправильной установки самого питона. При полном сносе языка и переустановке, соответственно переустановки самой библиотеки bs4 все заработало.

→ Ссылка