Вы не получаете никаких данных, потому что вы повторяете дополнительный внутренний цикл for, который не требуется
for e in elements:
if e == 'code' or e == 'pre':
См. Условие выше, вы перебираете родительский тег внутри списка дочерних тегов цикла, а также сравниваете tag object with the string
.вы уже получаете данные предварительного тега в text
объекте списка.
for page in pages:
res = requests.get(page)
html_text = BeautifulSoup(res.text, 'html.parser')
text = html_text.find_all(required_tags)
for t in text:
if t.name == 'code' or t.name == 'pre':
print("===if===")
code_outputs.append(t.get_text())
else:
print("===else===")
text_outputs.append(t.get_text())
print(code_outputs)
print(text_outputs)
Обновление:
json_data = []
for page in pages:
res = requests.get(page)
html_text = BeautifulSoup(res.text, 'html.parser')
text = html_text.find_all(required_tags)
for t in text:
if t.name == 'code' or t.name == 'pre':
code_outputs.append(t.get_text())
else:
text_outputs.append(t.get_text())
data = {page:{"html":text,"code_outputs":code_outputs,"text_outputs":text_outputs}}
json_data.append(data)
print(json_data)