-
Notifications
You must be signed in to change notification settings - Fork 0
/
scrapingLinks.py
37 lines (31 loc) · 1016 Bytes
/
scrapingLinks.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import queue
import urllib.request
import re
from urllib.parse import urljoin
def descargar(pagina):
try:
peticion = urllib.request.Request(pagina)
html = urllib.request.urlopen(peticion).read()
print("[*] Descarga OK >>", pagina)
except:
print('[!] Error descargando',pagina)
return None
return html
def rastrearEnlaces(pagina):
buscaEnlaces = re.compile('<a[^>]+href=["\'](.*?)["\']', re.IGNORECASE)
cola = queue.Queue()
cola.put(pagina)
visitados = [pagina]
print("Buscando enlaces en",pagina)
while (cola.qsize() > 0):
html = descargar(cola.get())
if html == None:
continue
enlaces = buscaEnlaces.findall(str(html))
for enlace in enlaces:
enlace = urljoin(pagina, str(enlace))
if(enlace not in visitados):
cola.put(enlace)
visitados.append(enlace)
url = input("Introduce la url: ")
rastrearEnlaces("http://"+url)