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.

 

Compartir