Curso Web Scraping para SEO – Clase 7

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

 

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.

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *