Это похоже на работу:
for tag in soup2.findAll("meta"):
if tag.get("property", None) == "og:description":
print(tag.get("content", None))
По сути, вы перебираете все теги на странице и ищете те, для которых свойство имеет значение «og: description», которое, по-видимому, является требуемым свойством Open Graph.
Это помогает?
Полная версия:
from bs4 import BeautifulSoup
import requests
url = "https://www.instagram.com/p/BsOGulcndj-/"
page2 = requests.get(url)
soup2 = BeautifulSoup(page2.content, 'html.parser')
result = soup2.findAll('meta', attrs={'content': 'description'})
for tag in soup2.findAll("meta"):
if tag.get("property", None) == "og:description":
print(tag.get("content", None))
Обновление : Относительно вашего вопроса о красивой печати этого, есть несколько способов, которые могут быть выполнены. Один из таких способов включает регулярные выражения и интерполяцию строк. Например:
likes = re.search('(.*)Likes', string).group(1)
comments = re.search(',(.*)Comments', string).group(1)
description = re.search('-(.*)', string).group(1)
print(f"{likes} Likes | {comments} Comments | {description}")
Но если у вас есть другой вопрос по этому поводу, его, вероятно, следует задать в новом сообщении.