# основная функция, которая парсит файлы
# если имя начинается на websites, то это вебархив, из пути берётся archive_timestamp и code
# если имя начинается на webc, то это кэш гуглопоиска, и параметры берутся из шапки страницы
def parse_release(fn):
with open(fn, "r") as f:
pg = f.read()
assert pg != ""
tree = htmlparse(pg)
if fn.startswith("websites/"):
archive_source = "webarchive"
archive_timestamp = int(fn.split("/")[2])
code = fn.split("/")[4]
else:
archive_source = "googlewebcache"
archive_timestamp = -1
m = re.search("снимок страницы по состоянию на (.+?)\.</span>", pg)
if m:
archive_timestamp = timestr2timestamp(m.group(1))
code = tree.find("base").get("href").split("/")[4]
# находим __NUXT__ на странице
nuxt_js = None
for s in tree.find_all("script"):
s_text = s.get_text()
if s_text.find("__NUXT__") > -1:
nuxt_js = s_text
break
# если не нашли - ёк!
if not nuxt_js:
print (f"ERROR! No nuxt data in {fn}!")
assert nuxt_js
# выполняем js-код
nuxt_raw = js2py.eval_js(nuxt_js)
...