Obtener metatag title
En cada página vamos a obtener el título incluido en el tag html <title>
# -*- coding: iso-8859-15 -*-
# Proyecto Web Scraping para SEO con Python
# Clase 7: Obtener metatag title# webscrap7
import urllib
import re
url_sitio = «https://evginformatica.blogspot.com/»
url_inicio=url_sitio
lista_enlaces = []
titulos = []
def buscar_enlaces(posicion,busqueda):
url = lista_enlaces[posicion]
htmluni = urllib.urlopen(url).read()
html=urllib.unquote(htmluni).decode(«utf-8»)
#buscar <title>
if titulos[posicion]==«»:
titulo = re.findall(«<title>.+</title>», html)
if titulo<>[]:
titulo_esp=titulo[0]
titulos[posicion]=titulo_esp[7:-8]
#buscar enlaces href
enlaces = re.findall(busqueda, html)
for enlace in enlaces:
#quitar href=’ y quitar comilla final
enlace2 = enlace[6:-1]
#enlaces excluidos
#/search
# o que contienen #
# solo paginas .html
anadir=True
if enlace2.find(«.html»)<0:
anadir=False
if enlace2.find(«/search»)>0:
anadir=False
if enlace2.find(«#»)>0:
anadir=False
if enlace2 in lista_enlaces:
anadir=False
if anadir:
lista_enlaces.append(enlace2)
titulos.append(«»)
def web_scrapin():
print «— Enlaces internos —«
lista_enlaces.append(url_inicio)
titulos.append(«»)
posicion = 0
while True:
#print «— «+lista_enlaces[posicion]
busqueda = «href='»+url_sitio+«.+?'»
buscar_enlaces(posicion,busqueda)
busqueda = ‘href=»‘+url_sitio+‘.+?»‘
buscar_enlaces(posicion,busqueda)
posicion = posicion+1
#pruebas
#if posicion >= 2:
# break
if posicion >= len(lista_enlaces):
break
i=1
for lenlace in lista_enlaces:
print str(i)+» «+lenlace
print » Titulo: «+titulos[i-1]
i=i+1
if __name__ == «__main__»:
web_scrapin()
# Proyecto Web Scraping para SEO con Python
# Clase 7: Obtener metatag title# webscrap7
import urllib
import re
url_sitio = «https://evginformatica.blogspot.com/»
url_inicio=url_sitio
lista_enlaces = []
titulos = []
def buscar_enlaces(posicion,busqueda):
url = lista_enlaces[posicion]
htmluni = urllib.urlopen(url).read()
html=urllib.unquote(htmluni).decode(«utf-8»)
#buscar <title>
if titulos[posicion]==«»:
titulo = re.findall(«<title>.+</title>», html)
if titulo<>[]:
titulo_esp=titulo[0]
titulos[posicion]=titulo_esp[7:-8]
#buscar enlaces href
enlaces = re.findall(busqueda, html)
for enlace in enlaces:
#quitar href=’ y quitar comilla final
enlace2 = enlace[6:-1]
#enlaces excluidos
#/search
# o que contienen #
# solo paginas .html
anadir=True
if enlace2.find(«.html»)<0:
anadir=False
if enlace2.find(«/search»)>0:
anadir=False
if enlace2.find(«#»)>0:
anadir=False
if enlace2 in lista_enlaces:
anadir=False
if anadir:
lista_enlaces.append(enlace2)
titulos.append(«»)
def web_scrapin():
print «— Enlaces internos —«
lista_enlaces.append(url_inicio)
titulos.append(«»)
posicion = 0
while True:
#print «— «+lista_enlaces[posicion]
busqueda = «href='»+url_sitio+«.+?'»
buscar_enlaces(posicion,busqueda)
busqueda = ‘href=»‘+url_sitio+‘.+?»‘
buscar_enlaces(posicion,busqueda)
posicion = posicion+1
#pruebas
#if posicion >= 2:
# break
if posicion >= len(lista_enlaces):
break
i=1
for lenlace in lista_enlaces:
print str(i)+» «+lenlace
print » Titulo: «+titulos[i-1]
i=i+1
if __name__ == «__main__»:
web_scrapin()
En cada página que encontremos buscamos el tag <title> con la expresión regular «<title>.+</title>» y vamos los vamos almacenando en la lista titulos.
En la lista que se nos muestra en pantalla ya vemos los títulos de todas las páginas web de nuestro sitio web.
En este momento el administrador del sitio web podrá revisar los títulos y si hay alguno mal o inexistente modificar las páginas.