Buscar todos los enlaces internos
A partir del paso anterior buscaremos todos los enlaces internos del sitio web, recorriendo cada página que encontremos y buscando enlaces dentro.
# -*- coding: iso-8859-15 -*-
# Proyecto Web Scraping para SEO con Python
# Clase 6: Buscar todos los enlaces internos# webscrap6
import urllib
import re
url_sitio = «https://evginformatica.blogspot.com/»
url_inicio=url_sitio
lista_enlaces = []
def buscar_enlaces(posicion,busqueda):
url = lista_enlaces[posicion]
htmluni = urllib.urlopen(url).read()
html=urllib.unquote(htmluni).decode(«utf-8»)
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)
if __name__ == «__main__»:
print «— Enlaces internos —«
lista_enlaces.append(url_inicio)
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
if posicion >= len(lista_enlaces):
break
i=1
for lenlace in lista_enlaces:
print str(i)+» «+lenlace
i=i+1
# Proyecto Web Scraping para SEO con Python
# Clase 6: Buscar todos los enlaces internos# webscrap6
import urllib
import re
url_sitio = «https://evginformatica.blogspot.com/»
url_inicio=url_sitio
lista_enlaces = []
def buscar_enlaces(posicion,busqueda):
url = lista_enlaces[posicion]
htmluni = urllib.urlopen(url).read()
html=urllib.unquote(htmluni).decode(«utf-8»)
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)
if __name__ == «__main__»:
print «— Enlaces internos —«
lista_enlaces.append(url_inicio)
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
if posicion >= len(lista_enlaces):
break
i=1
for lenlace in lista_enlaces:
print str(i)+» «+lenlace
i=i+1
. se buscará los enlaces en cada página que vayamos encontrando.
. se hacen dos búsquedas porque algunos enlaces se ponen entre comillas normales y otras en comillas simples.
. se define la función def buscar_enlaces(posicion,busqueda):
para buscar los enlaces en una página que ya está añadida en la lista
. la linea
if __name__ == «__main__»:
nos indicará el punto de entrada del program