Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/01/2012, 19:31
slork
 
Fecha de Ingreso: enero-2012
Ubicación: tachira
Mensajes: 2
Antigüedad: 12 años, 3 meses
Puntos: 0
Extraer Informacio de una web externa

Buenas noches señores del foro de PHP en este momento me encuentro en una emergencia estoy tratande de tomar una informacion consultada en una web externa y pasarla a mi web personal.

Bueno garacas a ustedes mucho antes he resolvio muchos preblemas de PHP gracias por apoyar a las comunidades de desarrolladores.

Yo encontre un ejemplo echo en VB donde toma algunos datos de una web y los pasa a excel mediante una macro, yo quisiera hacerlo para php. bueno aqui os dejo el codigo echo en VB para una macro en excel


Sub Cotizacion_del_dolar()
'Ocultamos el procedimiento
Application.ScreenUpdating = False
'Si hay errores, que continúe
On Error Resume Next
'pasamos a una variable, la página de la
'que vamos a sacar la información
web = "http://www.finanzas.com/cotizacion/dolar-usa-euro.htm"
'pasamos la parte que rodea al texto que
'nos interesa, a variables
principio = "<p id=""euros"">"
final = "<p class=""estado"
'miramos la 1ª fecha que aparece en la página,
'y que corresponde a la de la cotización del dólar
fecha_y_hora = "<p class=""hora-fecha"">"
'creamos el objeto xmlhttp
Set xml = CreateObject("Microsoft.XMLHTTP")
'accedemos a la página web
xml.Open "POST", web, False
'mandamos el contenido
xml.Send
'pasamos el contenido a una variable
texto = xml.responseText
'miramos en que nº de carácter aparecen los textos
'que envuelven la información que necesitamos.
'Primero con la posición inicial
posicion1 = InStr(texto, principio)
'ahora con la posición final
posicion2 = InStr(texto, final)
'ahora con la fecha
posicion3 = InStr(texto, fecha_y_hora)
'recuperamos el texto que hay entre esas dos posiciones
dato = Mid(texto, posicion1, (posicion2 - posicion1))
'si no hay errores, que haga lo que tiene que hacer
If Err = 0 Then
'creamos un array separando los elementos
'por el caracter " <strong>"
cotizacion = Split(dato, " <strong>")
'ahora se nos habrán formado 2 elementos separados por "<strong>",
'pero solo nos interesa el 1º de ellos (empieza por 0,1,2...),
'pero le quitaremos el "<p id="euros">" del principio
cotizacion(0) = Replace(cotizacion(0), "<p id=""euros"">", "")
'Escribimos el dato
Range("B9") = "Cotización del dólar:"
Range("C9") = CSng(cotizacion(0))
Range("D9") = "euros = 1 dólar"
'convertimos las unidades a dólar/euro
Range("C10") = CSng(1 / Range("C9"))
'mostramos 5 decimales
Selection.NumberFormat = "#,##0.00000"
Range("D10") = "dólares = 1 euro"
'ahora cogemos los datos de la fecha y la hora
'y como sabemos que la cadena '<p class="hora-fecha">'
'tiene 22 caracteres, los sumamos para obtener la hora
hora = Mid(texto, (posicion3 + 22), 5)
'ahora sumamos 28, porque la cadena
''<p class="hora-fecha">hh:mm ' tiene 28 caracteres
fecha = CDate(Mid(texto, (posicion3 + 28), 10))
Range("B12") = "Fecha:"
Range("C12") = fecha
'le damos formato de fecha
Range("C12").NumberFormat = "dd/mm/yyyy"
Range("B13") = "Hora:"
Range("C13") = hora
'le damos formato de hora
Range("C13").NumberFormat = "hh:mm"
'si hay errores, mostramos un mensaje
Else
Range("B9") = "Cotización del dólar:"
Range("C9") = "Imposible obtener la cotización"
End If
'imprimimos la ruta de la fuente desde
'la que obtenemos la información
Range("B7") = "Fuente:"
ActiveSheet.Hyperlinks.Add Anchor:=Range("C7"), Address:=web
'limpiamos el objeto
Set xml = Nothing
'Mostramos el procedimiento
Application.ScreenUpdating = True
End Sub


-------------------------------------------------------------------