Как разобрать файл htm с помощью Beautiful soup - PullRequest
0 голосов
/ 24 августа 2018

Я пытаюсь проанализировать локальный файл htm с помощью BeautifulSoup.

.htm - это тип файла.

from bs4 import BeautifulSoup
with open('locfile.htm') as fp:
   soup = BeautifulSoup(fp, "html5lib")
print(soup)

Попробуем три разных парсера, но результат получен одинаковый. Пример для html5lib

<html><body><p>t a b l e   i d = " T a b l a D a t a "   c l a s s = " T a b l a    w i d t h = " 9 0 %  &gt; 
 t r &gt;....

.....

и так далее. Я думаю, что "& gt" но преобразуется в эти строки.

Аналогичные результаты получены с использованием html.parser и html5llib

Как мне сделать так, чтобы метки попали в тело?

Может быть, это неправильная операция синтаксического анализа?

soup.contents
[<html><head></head><body>&lt;table id=........
..................
</body></html>

но внутренние теги отсутствуют или преобразованы в escape-символы html

Как мне сохранить теги?

1 Ответ

0 голосов
/ 24 августа 2018

Наконец-то я нашел решение.

Проблема заключалась в кодировке исходного файла:

with open('locfile.htm',encoding="utf-16LE") as fp:
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...