Get meta tag content property with BeautifulSoup and Python
try this :
soup = BeautifulSoup(webpage)
for tag in soup.find_all("meta"):
if tag.get("property", None) == "og:title":
print tag.get("content", None)
elif tag.get("property", None) == "og:url":
print tag.get("content", None)
A way I like to solve this is as follows:
(Is neater when using with lists of properties to look up...)
title = soup.find("meta", {"property":"og:title"})
url = soup.find("meta", {"property":"og:url"})
# Using same method as above answer
title = title["content"] if title else None
url = url["content"] if url else None
Provide the meta
tag name as the first argument to find()
. Then, use keyword arguments to check the specific attributes:
title = soup.find("meta", property="og:title")
url = soup.find("meta", property="og:url")
print(title["content"] if title else "No meta title given")
print(url["content"] if url else "No meta url given")
The if
/else
checks here would be optional if you know that the title and url meta properties would always be present.