Судя по предоставленному вами коду, похоже, что вы пытаетесь открыть имеющийся у вас html-файл.
Вместо того, чтобы разбирать HTML-файл построчно, как вы делаете.Просто напишите парсеру весь HTML-файл.
from html.parser import HTMLParser
class MyHTMLParser(HTMLParser):
def handle_starttag(self, tag, attrs):
print("Encountered a start tag:", tag)
def handle_endtag(self, tag):
print("Encountered an end tag :", tag)
def handle_data(self, data):
print("Encountered some data :", data)
parser = MyHTMLParser()
with open(r'C:\Users\...site_1.html', "r") as f:
page = f.read()
tree = html.fromstring(page)
parser.feed(tree)
Анализатор Pythons HTML требует, чтобы фид был строкой.Что вы можете сделать, это скопировать и вставить весь HTML-код, который у вас есть, в канал.Не может быть лучшей практикой, но он должен читать и анализировать html
parser.feed("THE ENTIRE HTML AS STRING HERE")
Надеюсь, это поможет
Редактировать ———- Вы пробовали вставить html в строку, как у вас, изатем вызывая str.strip()
в строке, чтобы удалить все пробелы из начала и конца строки.
К вашему сведению, вы также можете использовать sentence.replace(“ “, “”)
, чтобы удалить все пробелы из строки
Надеюсь, что этопомогает