Python парсинг html страницы

219
05 января 2019, 00:00

Хочу спарсить авито, но когда получаю html выводит какую-то бурду. Подскажите что не так. Пример полученного html:

href="https://m.avito.ru/rossiya/kvartiry">\n  \n <title>\xd0\x9a\xd0\xb2\xd0\xb0\xd1\x80\xd1\x82\xd0\xb8\xd1\x80\xd1\x8b - \xd0\xbf\xd1\x80\xd0\xbe\xd0\xb4\xd0\xb0\xd0\xb6\xd0\xb0, \xd0\xbf\xd0\xbe\xd0\xba\xd1\x83\xd0\xbf\xd0\xba\xd0\xb0 \xd0\xb8 \xd0\xb0\xd1\x80\xd0\xb5\xd0\xbd\xd0\xb4\xd0\xb0 \xd0\xb1\xd0\xb5\xd0\xb7 \xd0\xbf\xd0\xbe\xd1\x81\xd1\x80\xd0\xb5\xd0\xb4\xd0\xbd\xd0\xb8\xd0\xba\xd0\xbe\xd0\xb2 \xd0\xb2 \xd0\xa0\xd0\xbe\xd1\x81\xd1\x81\xd0\xb8\xd0\xb8 \xd0\xbd\xd0\xb0 Avito </title>\n <meta name="description" content="\xd0\x9e\xd0\xb1\xd1\x8a\xd1\x8f\xd0\xb2\xd0\xbb\xd0\xb5\xd0\xbd\xd0\xb8\xd1\x8f \xd0\xbe \xd0\xbf\xd1\x80\xd0\xbe\xd0\xb4\xd0\xb0\xd0\xb6\xd0\xb5, \xd0\xbf\xd0\xbe\xd0\xba\xd1\x83\xd0\xbf\xd0\xba\xd0\xb5 \xd0\xb8 \xd0\xb0\xd1\x80\xd0\xb5\xd0\xbd\xd0\xb4\xd0\xb5 \xd0\xba\xd0\xb2\xd0\xb0\xd1\x80\xd1\x82\xd0\xb8\xd1\x80 \xd0\xb1\xd0\xb5\xd0\xb7 \xd0\xbf\xd0\xbe\xd1\x81\xd1\x80\xd0\xb5\xd0\xb4\xd0\xbd\xd0\xb8\xd0\xba\xd0\xbe\xd0\xb2 \xd0\xb2 

Вот так вывожу это добро:

def get_html(url):
    response = urllib.request.urlopen(url)
    print(response.read())

Как можно это исправить?

Answer 1

Доверьте BeautifulSoup самому парсить страницу:

from bs4 import BeautifulSoup
from urllib.request import urlopen
def get_html(url):
    rs = urlopen(url)
    root = BeautifulSoup(rs, 'html.parser')
    print(root)
Answer 2

Python 3.6, работает без проблем:

import urllib
url = 'https://m.avito.ru/rossiya/kvartiry'
response = urllib.request.urlopen(url)
print(response.read().decode('utf-8'))

response.read() - возвращает нам строку bytes, соответственно декодируем её в utf-8 и всё работает

READ ALSO
Записать переменную в кэш

Записать переменную в кэш

При клике на цифру, она увеличивется на 1(это функционал уже есть написан)При перезагрузке страницы, нужно сохранить значение, тоесть 101

198
Как сделать так, чтобы зацикленное видео с youtube загружалось только 1 раз?

Как сделать так, чтобы зацикленное видео с youtube загружалось только 1 раз?

На страницу подключено Youtube видео через iframeВидео зацикливается, loop = 1

203
Получить значение inputa

Получить значение inputa

Есть такая верстка

217
Статичный dropdown в select2 [закрыт]

Статичный dropdown в select2 [закрыт]

Есть кастомный селект сделанный с помощью select2Мне необходимо сделать так что бы сам dropdown все время был открыт

200