2017-06-11 3 views
0

My-CodePython BeautifulSoup Fehler

import requests 
from bs4 import BeautifulSoup 

url = "http://www.quikr.com/jobs/direct-hiring-for-fresher-b.tech-diploma-iti-for-maruti-suzuki-gurgaon-W0QQAdIdZ293462666" 
encode = 'utf-8' 
headers = { 
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0", 
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", 
    "Accept-Language": "en-US,en;q=0.5", 
    "Accept-Encoding": "gzip, deflate", 
    "Connection": "close", 
    "DNT": "1", 
    "Upgrade-Insecure-Requests": "1" 
} 
response = requests.get(url, headers=headers) 
encodeData = response.text.encode(encode) 
soup = BeautifulSoup(encodeData) 
print soup.prettify() 

Ich versuche, eine HTML-Seite verschrotten, das ist sehr einfach Code. Aber ich immer noch Störung erhalte, wenn ich prettify() verwenden

Fehler ist

UnicodeEncodeError: 'charmap' codec can't encode character u'\xa9' in position 7

+1

Ich habe versucht, Ihren Code und es funktioniert völlig in Ordnung (py2, py3 beide) –

+0

Ich weiß nicht, ich bekomme immer noch den Fehler. Jedoch nach dem Entfernen von prettify() funktioniert es gut. – Firdoesh

+0

können Sie sagen, welche Plattform Sie ausführen? –

Antwort

2

Dies ist ein häufiges Problem. Das Problem liegt wahrscheinlich nicht an Ihrem Code, sondern an der Konsole, auf die Sie drucken. Beautifulsoup uses a unicode encoding, mit denen viele Redakteure nicht immer gut spielen (zum Beispiel bekomme ich diesen Fehler oft, wenn ich eine Suppe in Sublime Text drucke). Die Codierung der Zeichenfolge in ein anderes Format (UTF-8, ASCII) sollte den Trick tun.

print soup.prettify().encode('utf-8') 

Ich habe nicht getestet, das kann nur für Sie reparieren.

+0

Danke alle Scheint, als wäre das ein Umgebungsproblem, in meinem Linux funktioniert es gut. – Firdoesh