Get meta tag content property with BeautifulSoup and Python

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.


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