J'essaie d'utiliser python et belle soupe pour extraire la partie contenu des balises ci-dessous:
<meta property="og:title" content="Super Fun Event 1" />
<meta property="og:url" content="http://superfunevents.com/events/super-fun-event-1/" />
J'obtiens BeautifulSoup pour charger la page très bien et trouver d'autres choses (cela saisit également l'ID d'article de la balise id cachée dans la source), mais je ne connais pas la bonne façon de rechercher le html et de trouver ces bits, J'ai essayé des variantes de find et findAll en vain. Le code parcourt actuellement une liste d'URL ...
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#importing the libraries
from urllib import urlopen
from bs4 import BeautifulSoup
def get_data(page_no):
webpage = urlopen('http://superfunevents.com/?p=' + str(i)).read()
soup = BeautifulSoup(webpage, "lxml")
for tag in soup.find_all("article") :
id = tag.get('id')
print id
# the hard part that doesn't work - I know this example is well off the mark!
title = soup.find("og:title", "content")
print (title.get_text())
url = soup.find("og:url", "content")
print (url.get_text())
# end of problem
for i in range (1,100):
get_data(i)
Si quelqu'un peut m'aider à trier le morceau pour trouver le contenu og: title et og: ce serait fantastique!
Fournissez le nom de la balise meta
comme premier argument à find()
. Ensuite, utilisez des arguments de mots clés pour vérifier les attributs spécifiques:
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")
Les vérifications if
/else
ici seraient facultatives si vous savez que les propriétés meta title et url seraient toujours présentes.
essaye ça :
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)