Извлекайте HTML-теги из текстового файла с помощью итерации, добавляйте их в список и игнорируйте все остальные символы в Python - PullRequest
0 голосов
/ 09 сентября 2018

Я хочу иметь возможность прочитать html-файл и извлечь из него только теги.

  1. Читайте по одному символу за раз из файла, игнорируя все, чтобы получить "<" (игнорируйте также <") </li>
  2. Читайте по одному символу за раз,добавляя их к строке до ">" или пробела (также игнорируйте ">")

      <html>
       <body>
       <h1>This is test</h1>
       <h2> This is test 2<h2>
       </body>
       <html>
    
    
       with open('doc.txt', 'r') as f:
                all_lines = []
                # loop through all lines using f.readlines() method
                for line in f.readlines():
                    new_line = []
                    # this is how you would loop through each alphabet
                    for chars in line:
                        new_line.append(chars)
                    all_lines.append(new_line)
    
                print(all_lines)
    

Я могу перебирать текстовые файлы и получать список, как показано ниже:

[['<', 'h', 't', 'm', 'l', '>', '\ n'], ['<', 'b', 'o', 'd', 'y', '>', '\ n'], ['<', '/', 'b', 'o', 'd', 'y', '>', '\n '], [' <',' / ',' h ',' t ',' m ',' l ','> ']]

, но ожидаемый результат должен быть: [html,тело, h1, h1 /, / h2, / тело / html]

1 Ответ

0 голосов
/ 09 сентября 2018
In [10]: re.findall('<(.*?)>', html)
Out[10]: ['html', 'body', 'h1', '/h1', 'h2', 'h2', '/body', '/html']

Просто используйте regex или HTMLParser.

...