Я получаю данные с веб-страницы, используя urllib2. Содержание всех страниц написано на английском языке, поэтому нет проблем с неанглийским текстом. Однако страницы закодированы, и они иногда содержат элементы HTML, такие как £ или символ авторского права и т. Д.
Я хочу проверить, содержат ли части страницы определенные ключевые слова, однако я хочу сделать проверку без учета регистра (по очевидным причинам).
Каков наилучший способ преобразования содержимого возвращаемой страницы во все строчные буквы?
def get_page_content_as_lower_case(url):
request = urllib2.Request(url)
page = urllib2.urlopen(request)
temp = page.read()
return str(temp).lower() # this dosen't work because page contains utf-8 data
[[Обновить]]
Мне не нужно использовать urllib2 для получения данных, на самом деле я могу вместо этого использовать BeautifulSoup, поскольку мне нужно извлекать данные из определенного элемента (элементов) на странице - для которого BS является гораздо лучшим выбором. Я изменил название, чтобы отразить это.
ОДНАКО, проблема все еще остается в том, что извлеченные данные находятся в некотором кодировке, отличном от asci (который должен быть) в utf-8. Я проверил одну из страниц, и кодировка была iso-8859-1.
Поскольку меня интересует только английский язык, я хочу знать, как я могу получить строковую версию ASCII строчных букв данных, извлеченных со страницы, чтобы я мог выполнить чувствительный к регистру тест на предмет того, является ли ключевое слово встречается в тексте.
Я предполагаю, что тот факт, что я ограничился только английским (с англоязычных веб-сайтов), уменьшает выбор кодировки ?. Я не знаю много о кодировании, но я предполагаю, что допустимыми являются следующие варианты:
Является ли это допустимым предположением, и если да, возможно, есть способ написать «надежную» функцию, которая принимает закодированную строку, содержащую текст на английском языке, и возвращает строковую версию ASCII в нижнем регистре?