Я пытаюсь разобрать текст электронных писем, чтобы ускорить мой рабочий процесс с использованием Python.Сначала я сохраняю электронную почту .htm на моем локальном диске.Затем я хочу попытаться извлечь определенные фрагменты информации из таблицы в электронном письме с помощью Jupyter Notebook.Всякий раз, когда я создаю суп, результатом является разнесенное текстовое поле.Я не могу использовать этот суп, чтобы сделать правильные вызовы HTML для извлечения данных.Как я могу переформатировать суп?
.htm файл уже текстовый, но я все же хотел бы использовать Beautiful Soup, чтобы помочь мне разобрать текстовое поле.Должен ли я попробовать другой метод синтаксического анализа?
from bs4 import BeautifulSoup
raw_file = open(r"C:\Users\Desktop\Example.htm").read()
soup = BeautifulSoup(raw_file, 'lxml')
print(soup)
Я ожидал, что файл супа отформатирован правильно, вместо этого это то, что возвращает оператор print:
<html><body>
<p>ÿþh t m l x m l n s : v = " u r n : s c h e m a s - m i c r o s o f t - c o m : v m l "
x m l n s : o = " u r n : s c h e m a s - m i c r o s o f t - c o m : o f f i c e : o f f i c e "
x m l n s : w = " u r n : s c h e m a s - m i c r o s o f t - c o m : o f f i c e : w o r d "
x m l n s : m = " h t t p : / / s c h e m a s . m i c r o s o f t . c o m / o f f i c e / 2 0 0 4 / 1 2 / o m m l "
x m l n s = " h t t p : / / w w w . w 3 . o r g / T R / R E C - h t m l 4 0 " >
h e a d >
m e t a h t t p - e q u i v = C o n t e n t - T y p e c o n t e n t = " t e x t / h t m l ; c h a r s e t = u n i c o d e " >
m e t a n a m e = P r o g I d c o n t e n t = W o r d . D o c u m e n t >
m e t a n a m e = G e n e r a t o r c o n t e n t = " M i c r o s o f t W o r d 1 5 " >
m e t a n a m e = O r i g i n a t o r c o n t e n t = " M i c r o s o f t W o r d 1 5 " >
b a s e
Когда я вызываю -
print(raw_file)
следующие возвраты:
ÿþ<html xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=unicode">
<meta name=ProgId content=Word.Document>
<meta name=Generator content="Microsoft Word 15">
<meta name=Originator content="Microsoft Word 15">
<base