comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[Python] Necesito ayuda para crear web scraping

  • 5 Respuestas
  • 2406 Vistas

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

Desconectado OLM

  • *
  • Underc0der
  • Mensajes: 57
  • Actividad:
    0%
  • Reputación 0
  • No hay justicia si la guerra está justificada.
    • Ver Perfil
    • Hackpuntes
    • Email
  • Skype: jjavierolmedo
  • Twitter: @JJavierOlmedo
« en: Septiembre 07, 2014, 09:27:43 pm »
Hola a todos,
Necesito un empujoncito para crear un web scraping, lo tengo a medias pero no me funciona pues soy nuevo en Python y no se como obtener el html o texto plano de la URL.

Debo de obtener el html de una url, buscar una etiqueta y extraer el contenido de ella, para ello, tendra que modificar la url en cada vuelta del bucle por letras del diccionario de la siguiente manera desde AA, AB, AC, AD ..... ZA, ZB, ZC, hasta ZZ, las letras las cambiara y sacara el valor de la etiqueta de cada url
Pongo de color rojo lo que deberia de cambiar
No tienes permisos para ver links. Registrate o Entra con tu cuentaAA&Find_Number=35&RegID2=0
Y lo que deberia de imprimir en pantalla
AA --- Etiqueta --- valor
AB --- Etiqueta --- valor
....................................
....................................
ZA --- Etiqueta --- valor
ZZ --- Etiqueta --- valor

Saludos.
« Última modificación: Septiembre 07, 2014, 09:35:26 pm por Expermicid »
Nunca consideres el estudio como una obligación, sino como una oportunidad para adentrarse en el maravilloso mundo del saber.

Desconectado Once

  • *
  • Underc0der
  • Mensajes: 391
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • El blog de Once
  • Twitter: @don_once
« Respuesta #1 en: Septiembre 07, 2014, 09:52:06 pm »
¿Puedes postear lo que tienes?


Puedes usar la libreria urllib o urllib2 para abrir una url y obtener el código.
Para sacar la etiqueta, puedes usar expresiones regulares (módulo re)
Para modificar la url, puedes usar el formateo de cadenas mira un ejemplo:
Código: Python
  1. for x in "abcd":
  2.     print "http://www.localhost.es/ejemplo/35885.html?Code={0}&Find_Number=35&RegID2=0".format(x)
  3.  

No te puedo ayudar más porque la información que das no es suficiente. Si puedes ser un poco más específico te puedo ayudar mucho más.

Saludos!






No tienes permisos para ver links. Registrate o Entra con tu cuenta

Desconectado OLM

  • *
  • Underc0der
  • Mensajes: 57
  • Actividad:
    0%
  • Reputación 0
  • No hay justicia si la guerra está justificada.
    • Ver Perfil
    • Hackpuntes
    • Email
  • Skype: jjavierolmedo
  • Twitter: @JJavierOlmedo
« Respuesta #2 en: Septiembre 08, 2014, 04:35:20 pm »
Sería algo así


Código: Python
  1. diccionario = (["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"])
  2. url = ("http://www.localhost.es/3.html?Effort_Code=WW")
  3. for i in diccionario:
  4.    for j in diccionario:
  5.       print ("http://www.localhost.es/3.html?Effort_Code=" + i + j )
  6.       labelin = input ("Introduce la etiqueta html a buscar\n>>>")
  7.       label = ("<"+labelin+">")
  8.       longitud = len(label)
  9.       linea = html.readline()
  10.       if linea.find(label):
  11.          print (i + j + " = " + "contenido de label")


Evidentemente en el primer print no tiene que imprimirlo, tengo que traerme el html o txt de la url para poder buscar en el.
Tengo print para ver si saca bien la url.

Saludos
« Última modificación: Septiembre 08, 2014, 04:43:06 pm por OLM »
Nunca consideres el estudio como una obligación, sino como una oportunidad para adentrarse en el maravilloso mundo del saber.

Desconectado Once

  • *
  • Underc0der
  • Mensajes: 391
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • El blog de Once
  • Twitter: @don_once
« Respuesta #3 en: Septiembre 08, 2014, 10:39:32 pm »
Ok bro, lo primero que veo es que usas Python 3x

Para sacar el html de una web, como te decía antes, debes usar la libreria urllib (urllib2 no existe en python 3x)

Código: Python
  1. import urllib.request
  2. import re
  3.  
  4. url = "http://python.org/"
  5. response = urllib.request.urlopen(url)
  6. html = str(response.read())
  7.  
  8. print(re.findall("<title>(.*?)</title>", html))
  9.  

Las líneas que te resalté en el código, son en las que se saca la etiqueta (expresión regular). Ya solo te queda acomodar este código a lo que necesitas.
Saludos!






No tienes permisos para ver links. Registrate o Entra con tu cuenta

Desconectado OLM

  • *
  • Underc0der
  • Mensajes: 57
  • Actividad:
    0%
  • Reputación 0
  • No hay justicia si la guerra está justificada.
    • Ver Perfil
    • Hackpuntes
    • Email
  • Skype: jjavierolmedo
  • Twitter: @JJavierOlmedo
« Respuesta #4 en: Septiembre 09, 2014, 08:17:48 am »
Muchas gracias por ayudarme, pero sigo sin poder sacar el contenido de las etiquetas de las URL's.
Me conecta pero me devuelve en todas las peticiones [].
Pongo el codigo según lo tengo.

Código: Python
  1. import urllib.request
  2. import re
  3.  
  4. diccionario = (["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"])
  5. for i in diccionario:
  6.         for j in diccionario:
  7.                 url = ("http://www.localhost.es/3.html?Effort_Code=" + i + j)
  8.                 response = urllib.request.urlopen(url)
  9.                 html = str (response.read)
  10.                 print(re.findall('<span itemprop="price">(.*?)</span>', html))

¿Que puedo estar haciendo mal?
Yo queria primero extraer el html, guardarlo y despues linea a linea buscar la etiqueta, tiene mucho mas trabajo pero creo que lo entenderé mejor.

Saludos y mil gracias.

Un Saludo.
« Última modificación: Septiembre 09, 2014, 08:19:35 am por OLM »
Nunca consideres el estudio como una obligación, sino como una oportunidad para adentrarse en el maravilloso mundo del saber.

Desconectado Once

  • *
  • Underc0der
  • Mensajes: 391
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • El blog de Once
  • Twitter: @don_once
« Respuesta #5 en: Septiembre 09, 2014, 06:42:26 pm »
Las expresiones regulares son muy sensibles, si no publicas el html no te puedo ayudar.

Saludos!






No tienes permisos para ver links. Registrate o Entra con tu cuenta

 

¿Te gustó el post? COMPARTILO!



Cómo uso la "/" para hacer un select en una tabla

Iniciado por tetano32

Respuestas: 3
Vistas: 980
Último mensaje Diciembre 20, 2017, 04:41:12 pm
por tetano32
[SOLUCIONADO] Desencriptacion de una imagen para extraer la imagen original

Iniciado por stuxnet13

Respuestas: 3
Vistas: 1305
Último mensaje Enero 07, 2016, 07:55:01 pm
por blackdrake
allegro 5,opngl,sdk para fan game modo storyboard game

Iniciado por Mr.Tru

Respuestas: 2
Vistas: 381
Último mensaje Mayo 23, 2018, 01:19:20 pm
por Mr.Tru
[SOLUCIONADO] ¿Sirve para pentesting "Huayra GNU/Linux 2.0"?

Iniciado por Doblez

Respuestas: 2
Vistas: 1294
Último mensaje Mayo 13, 2016, 08:44:59 pm
por Doblez
¿Qué sistema operativo sería recomendable para un "core 2 duo"?

Iniciado por adragon

Respuestas: 4
Vistas: 1605
Último mensaje Febrero 18, 2017, 10:13:04 am
por Linuxero40