2017-01-19 32 views
0

Привет, я пишу код очистки, но когда я пытаюсь получить весь абзац с сайта, он дает мне следующую ошибку: Unicode Encode Error: Charmap не может кодировать символ '\ xa9'Unicode Encode Error: Charmap не может кодировать символ xa9 в Python

вот мой код:

#Loading Libraries 
 
import urllib 
 
from urllib.parse import urlparse 
 
from urllib.parse import urljoin 
 
import urllib.request 
 
from bs4 import BeautifulSoup 
 

 
#define URL for scraping 
 
newsurl = "http://www.techspot.com/news/67832-netflix-exceeds-growth-expectations-home-abroad-stock-soars.html" 
 
thepage = urllib.request.urlopen(newsurl) 
 

 
soup = BeautifulSoup(thepage ,"html.parser") 
 

 
article = soup.find_all('div' , {'class','articleBody'}) 
 

 
for pg in article: 
 
\t paragraph = soup.findAll('p') 
 
\t ptag = paragraph 
 
\t print(ptag)
Ошибка я получаю следующий:

enter image description here

Позвольте мне, как удалить эту ошибку

+0

Не пытайтесь печатать на консоли, которая не может отобразить юникод. Вместо этого, например, пишите в файл с кодировкой utf-8. Также 'ptag' не является строкой и, следовательно, не кодирует метод. Вы можете попробовать 'str (ptag) .encode ('ascii', 'ignore')'. – mkiever

+1

BTW. печать unicode на консоль, скорее всего, уже ответила на SO. Возможно, дубликат. – mkiever

+0

fidn как установить utf-8 (cp65001) в консоли. – furas

ответ

0

soup.findAll() возвращает объект ResultSet, который является в основном список, который не имеет атрибута закодировать. Вы либо имел в виду использовать .text вместо:

text = soup.text 

Или, «присоединиться» тексты:

text = "".join(soup.findAll(whatever, you, want))