2016-03-05 4 views
0

Я недавно пытался извлечь данные с веб-сайта, но, похоже, я получаю сообщение об ошибке, которое я не могу решить самостоятельно. Поэтому я начал оглядываться, чтобы увидеть, были ли у кого-то другие мои одинаковые ошибки, и я нашел 3, чтобы быть точным, я пробовал все 3 решения и еще пару, но ничего не работает.Объект Python bs4 'bytes' не имеет атрибута 'prettify'

Вот мой код:

import bs4 
from time import sleep 
import requests 
import os 
import sys 
import io 

sys.stdout = io.TextIOWrapper(sys.stdout.buffer,'cp437','backslashreplace') 

f = open('output.txt', 'w') 
f.close() 
project_name = 'reddit' 
url = 'https://www.reddit.com/' 
html = requests.get(url) 
soup = bs4.BeautifulSoup(html.text, 'html.parser').encode('utf-8') 

print(soup.prettify()) 

Как вы можете видеть, что я попытался sys.stdout = io.TextIOWrapper(sys.stdout.buffer,'cp437','backslashreplace'), который был предложен кем-то на другом потоке, но, к сожалению, она не работает в моем случае.

Если кто-нибудь знает это решение, он будет очень благодарен, спасибо заранее.

Наоми,

+1

Почему вы открываете файл и закройте его сразу же после этого? Вы хотите записать вывод в файл? –

ответ

1

.encode('utf-8') Снимите:

soup = bs4.BeautifulSoup(html.text, 'html.parser')