Я хочу сделать простой синтаксический анализ из 2-х тегов html:
должен стать:
Мой код почти хороший, ошибок нет, но парсинг не производится. Я считаю, что что-то не так с разделом flags = re.DOTALL. Может кто-нибудь мне помочь?
Код:
<title>Love Stars</title>
<meta name="Subject" content="MERCY"/>
должен стать:
Код:
<title>Love Stars</title>
<meta name="Subject" content="Love Stars"/>
Мой код почти хороший, ошибок нет, но парсинг не производится. Я считаю, что что-то не так с разделом flags = re.DOTALL. Может кто-нибудь мне помочь?
Код:
import requests
import re
english_folder1 = r"c:\test"
extension_file = ".html"
use_parse_folder = True
import os
en1_directory = os.fsencode(english_folder1)
print('Going through english folder')
for file in os.listdir(en1_directory):
filename = os.fsdecode(file)
print(filename)
if filename == 'y_key_e479323ce281e459.html' or filename == 'TS_4fg4_tr78.html': #ignore this files
continue
if filename.endswith(extension_file):
with open(os.path.join(english_folder1, filename), encoding='utf-8') as html:
html = html.read()
try:
with open(os.path.join(english_folder1, filename), encoding='utf-8') as en_html:
en_html = en_html.read()
try:
parse_1 = re.search('<title>.+</title>', html, re.DOTALL)[0]
en_html = re.sub('<meta name="Subject" content=".+"', parse_1, html, re.DOTALL)
except:
pass
except FileNotFoundError:
continue
print(f'{filename} parsed')
if use_parse_folder:
try:
with open(os.path.join(english_folder1+r'\parsed', 'parsed_'+filename), 'w', encoding='utf-8') as new_html:
new_html.write(en_html)
except:
os.mkdir(english_folder1+r'\parsed')
with open(os.path.join(english_folder1+r'\parsed', 'parsed_'+filename), 'w', encoding='utf-8') as new_html:
new_html.write(en_html)
else:
with open(os.path.join(english_folder1, 'parsed_'+filename), 'w', encoding='utf-8') as html:
html.write(en_html)