Използвам BeautifulSoup за изчерпване на данни от уеб страница. Искам да сравня данните от уебсайта с текст, който е в .txt документ. Изглежда обаче имам проблеми с кодирането.
Уебсайтът има текст „загрейте фурната до 400°“ Текстът също се появява по този начин в „преглед на източника“ (без html обекти.)
Уебсайтът се чете с помощта на beautifulSoup:
source = "my url".read()
....
soup = BeautifulSoup(source)
Текстовият документ е създаден чрез създаване на нов текстов документ, кодиран като „Кодиране в UTF-8 без BOM“. След това копирах и поставих „загрейте фурната до 400°“ от уебсайта в текстовия документ и го запазих.
Текстовият файл се чете като
f = codecs.open('myfilename', encoding='utf-8')
Когато сравня двата низа, те не са равни, но искам да са.
За да видя какво се случва: В Eclipse разделям двата текста и, гледайки променливите в режим на отстраняване на грешки, виждам, че знакът за градус от BeautifulSoup се появява като \xc2 \xb0. Знакът за степен от текстовия документ просто се появява като \xb0.
Защо и как да го поправя? Имам този проблем с много специални знаци, така че имам нужда от общо решение. Освен това ще копирам данни от няколко сайта в текстовия документ.