Итак, вам нужно добавить тег h1
в список абзацев, выполнив:
paragraphs = soup.find_all(['li', 'p', 'strong', 'em', 'h1'])
Также title
должен выглядеть так:
title = soup.find(['title']).get_text()
Теперь все h1
находятся в вашем списке абзацев. Вместо того, чтобы как-то сохранять их в другой массив и снова как-то сбивать их с толку, я бы просто поместил туда теги <h1>
, а позже проверял, какой это тег, и выполнял другой код для разных тегов, таких как <p>
или <h1>
. *. 1013 *
import requests
import bs4
import os
import shutil
from PIL import Image
article_URL = 'https://medium.com/bhavaniravi/build-your-1st-python-web-app-with-flask-b039d11f101c' #@param {type:"string"}
response = requests.get(article_URL)
soup = bs4.BeautifulSoup(response.text, 'html.parser')
paragraphs = soup.find_all(['li', 'p', 'strong', 'em', 'h1'])
title = soup.find(['title']).get_text()
print(title)
tag_list = []
with open('content2.txt', 'w') as f:
f.write(title + '\n\n')
for p in paragraphs:
if not p.href:
if len(p.get_text()) > 5:
tag_list.append(p)
for i in range(len(tag_list)):
text = tag_list[i].get_text()
if tag_list[i].name in ["p", "li", "strong", "em"]:
# Code run when text is in a <p> html tag
print(f"p: {text}")
elif tag_list[i].name in ["h1"]:
# Code run when text is in a <h1> html tag
print(f"h1: {text}")
Это запустит другой код для <p>
и для тегов <h1>
html.