У меня есть документ с двумя типами содержимого: text / xml и text / html. Я хотел бы использовать BeautifulSoup для анализа документа и получения чистой текстовой версии. Документ начинается как кортеж, поэтому я использую repr, чтобы превратить его во что-то, что BeautifulSoup распознает, а затем использую find_all, чтобы найти только бит text / html документа путем поиска элементов div, например:
soup = BeautifulSoup(repr(msg_data))
text = soup.html.find_all("div")
Затем я превращаю текст обратно в строку, сохраняю его в переменную, а затем превращаю обратно в объект-суппорт и вызываю для него get_text, например:
str_text = str(text)
soup_text = BeautifulSoup(str_text)
soup_text.get_text()
Тем не менее, это затем изменяет кодировку на юникод, например:
u'[9:16 PM\xa0Erica: with images, \xa0\xa0and that seemed long to me anyway, 9:17
PM\xa0me: yeah, \xa0Erica: so feel free to make it shorter, \xa0\xa0or rather, please do,
9:18 PM\xa0nobody wants to read about that shit for 2 pages, \xa0me: :), \xa0Erica: while
browsing their site, \xa0me: srsly, \xa0Erica: unless of course your writing is magic,
\xa0me: My writing saves drowning puppies, \xa0\xa0Just plucks him right out and gives
them a scratch behind the ears and some kibble, \xa0Erica: Maine is weird, \xa0me: haha]'
Когда я пытаюсь перекодировать его как UTF-8, примерно так:
soup.encode('utf-8')
Я вернулся к необработанному типу.
Я бы хотел перейти к тому моменту, когда у меня будет чистый текст, сохраненный в виде строки, тогда я смогу найти в тексте конкретные вещи (например, «щенки» в тексте выше).
По сути, я бегаю кругами здесь. Кто-нибудь может помочь? Как всегда, большое спасибо за любую помощь, которую вы можете оказать.