scraping page find_all python html web-scraping beautifulsoup

page - scraping en python



Obtener propiedad de contenido de etiqueta meta con BeautifulSoup y Python (2)

Estoy tratando de usar Python y una sopa hermosa para extraer la parte de contenido de las etiquetas a continuación:

<meta property="og:title" content="Super Fun Event 1" /> <meta property="og:url" content="http://superfunevents.com/events/super-fun-event-1/" />

Estoy obteniendo que BeautifulSoup cargue la página correctamente y encuentre otras cosas (esto también toma la identificación del artículo de la etiqueta de identificación oculta en la fuente), pero no conozco la forma correcta de buscar el html y encontrar estos bits, He intentado variaciones de encontrar y encontrar todo en vano. El código itera sobre una lista de urls en la actualidad ...

#!/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 alguien puede ayudarme a ordenar el bit para encontrar el contenido de og: title y og: ¡sería fantástico!


Proporcione el nombre de la etiqueta meta como el primer argumento para find() . Luego, use argumentos de palabras clave para verificar los atributos específicos:

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")

La opción if / else chequea aquí sería opcional si sabe que las meta propiedades de título y url siempre estarán presentes.


prueba esto :

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)