Script para mostrar IP's de los dominios que aparecen en una búsqueda de Google

Iniciado por Skali, 13 Julio 2016, 02:28 AM

0 Miembros y 1 Visitante están viendo este tema.

Skali

Que tal gente, quería hacer un pequeño script en python, ya tengo todo en la mente. Básicamente uso una libreria para navegar x la web, leo del teclado un uri para luego enviar la consulta con un inurl:uri en el parametro q, de consulta de google. Despues parseo la respuesta para quedarme solo con los nombres de los dominios, los filtro para sacar el www. y lo que esta a partir del uri, para poder hacer un ping, con cada uno de los dominios fitlrados, parsear los resultados del ping para quesarte con la ip, y despues guardar en un archivo linea por línea todas las ips...

Los problemas que me surgieron son los siguientes:
1) No se que parámetro se usa para manejar el numero de pagina de google, porque se supone que se tiene que ir recorriendo todas las paginas hasta que ya no haya mas resultados.
2) Seguramente despues de navegar por un par de paginas me pida un captcha, tienen idea como bypassearlo?

Gracias por la ayuda, si me dan una mano con ésto, despues subo el script terminado!

Saludos

Skali

 lo primero ya lo resolví, el parametro es start... Por cada página google muestra 10 enlaces, si estas en la pagina uno es start=0, pagina 2, start=10, y asi susesivamente

Poyoncio

Se seguramente no te interese pero hace un tiempo hice algo parecido, igual te sirve porque esta bastante simplificado:

Esta parte del codigo se encargaria de extraer las urls de las paginas web de un fichero. En la carpeta del script tienes que tener un documento llamado url1.txt con almenos 1 url o sino haces un raw_input y que automaticamente se escriba en el fichero
Código (python) [Seleccionar]

import urllib
from bs4 import BeautifulSoup
while 0:



   escritura=open("url1.txt","a")
   lectura=open("url1.txt","r")


   lines=archivo.readline() #Coge la siguiente url por defecto tienes que tener 1 url
   [font=Verdana]Numero_url[/font]=lines
   response=urllib.urlopen(Numero_url)  
   link=urllib.urlopen(Numero_url).read() #Obtiene contenido html

   bs=BeautifulSoup(link,"lxml")
   for link in bs.find_all('a', href=True): #Busca etiquetas href que no sean de css o javascript
       urlsss=link['href']
       if urlsss.startswith("http" or "www."): #Filtra css o javascript
           print urlsss
           escritura.write(urlsss) #Lo escribe en el fichero
           escritura.writelines("\n")

Luego, esta parte se encarga de leer un dominio de url1.txt y convertirlo en una ipv4, ahi tienes que tu anteriormente haber filtrado el http://www o https://www haces un .replace('http://www' or 'https//www', '') y ya estaria filtrado:
Código (python) [Seleccionar]

import dns.resolver
#La variable dominio la obtienes de el fichero de arriba
conversor_ipv4 = dns.resolver.query(dominio, 'A') #Dominio tienes que haber obtenido antes
for conversor_ipv4 in ans:
   print ans #Aqui te imprimiria las ipv4 creas un fichero aparte para que lo escriba y ya lo tendrias


Ademas puedes meter threads y que lea si ya estan esas direcciones dentro del fichero

Si tienes alguna duda solo tienes que enviar mensaje estoy interesado en este proyecto
Curso de ensamblador desde cero