Сохраните приведенный ниже скрипт как script.py
и запустите его так:
python3 script.py input.html
Этот скрипт анализирует HTML и проверяет атрибуты (width
и cellpadding
). Преимущество этого подхода состоит в том, что если вы измените форматирование файла HTML, он все равно будет работать, поскольку скрипт анализирует HTML, а не полагается на точное совпадение строк.
from html.parser import HTMLParser
import sys
def print_tag(tag, attrs, end=False):
line = "<"
if end:
line += "/"
line += tag
for attr, value in attrs:
line += " " + attr + '="' + value + '"'
print(line + ">", end="")
if len(sys.argv) < 2:
print("ERROR: expected argument - filename")
sys.exit(1)
with open(sys.argv[1], 'r', encoding='cp1252') as content_file:
content = content_file.read()
do_print = False
class MyHTMLParser(HTMLParser):
def handle_starttag(self, tag, attrs):
global do_print
if tag == "table":
if ("width", "100%") in attrs and ("cellpadding", "4") in attrs:
do_print = True
if do_print:
print_tag(tag, attrs)
def handle_endtag(self, tag):
global do_print
if do_print:
print_tag(tag, attrs=(), end=True)
if tag == "table":
do_print = False
def handle_data(self, data):
global do_print
if do_print:
print(data, end="")
parser = MyHTMLParser()
parser.feed(content)