Problema para bajar código de fuente (especialmente para WarGhost)

Iniciado por dPix, 13 Septiembre 2006, 00:13 AM

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

dPix

Hola a todos, weno mi problema incide en que no se que estoy haciendo mal pero el caso es que no funciona, ¿el qué? Pues recibir simplemente el código de fuente de una búsqueda en google a través del uso de Sockets (GET...) bueno, pongo el code y me contáis si encontráis el error, muchas gracias de antemano.

Code para poner en marcha:
If InStr(1, recib, "*google") Then
WinsocK2.Connect "www.google.es", 80
Timer1.Enabled = True
End If


Timer puesto a 3500 de intervalo, en estado original desactivado:
Private Sub Timer1_Timer()
If WinsocK2.State = sckConnected Then
List1.AddItem "Conectado a google.es por el puerto 80."
Call intentare
End If
End Sub


Llamada que hace el timer el cuál sirve para que no vaya excesivamente rápida la conexión (creo que no es ese el problema):
Private Sub intentare()
Timer1.Enabled = False
Dim midebuk As Integer
midemuk = InStr(1, Text3.Text, "*google") + 8
WinsocK2.SendData ("GET /search?hl=es&q=" & Mid(Text3.Text, midemuk) & "&meta= HTTP/1.0" & Chr(13) & Chr(10))
List1.AddItem ("GET /search?hl=es&q=" & Mid(Text3.Text, midemuk) & "&meta=" & " HTTP/1.0")
WinsocK2.SendData ("Host:www.google.es" & Chr(13) & Chr(10))
List1.AddItem "Host:www.google.es"
WinsocK2.SendData (Chr(13) & Chr(10))
List1.AddItem (Chr(13) & Chr(10))
End Sub


Datos: al recibir *google busca lo que esté después del espacio después de la "e", aún no tengo puesto que funcione con más palabras ya que aún no funciona ni con una sola, funciona mediante sockets independientes (sin .ocx) y he creado dos con un mismo módulo y módulo de clase y he declarado: Public WithEvents WinsocK1 As CSocket
Public WithEvents WinsocK2 As CSocket

También en el load del form:
Set WinsocK1 = New CSocket
Set WinsocK2 = New CSocket


Espero haberme explicado bien, si hacen falta más datos para ayudarme los daré, muchas gracias de antemano y espero que me ayuden.

Salu2,

dPix :)

elmaro


Hendrix

Esto se puede hacer perfectamente kon la API URLDownloadToFile, Ertai lo hizo asi en una aplicacion suya...aunke no me akuerdo de la Aplikacion...xD

Salu2

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián

WarGhost

No te e entendido muy lo que quieres hacer pero creo que es que busque algo estomáticamente en Google no?

Mira este código te devuelve el código limpio de la búsqueda ;).

Dim temp As String
Dim buscar As String

Private Sub Form_Load()
buscarGoogle ("Wola 1")
End Sub

Public Function buscarGoogle(data As String)
ws.Close
ws.Connect "www.google.es", 80
buscar = data
End Function

Private Sub ws_Connect()
buscar = Replace(buscar, Chr(32), "%20")
ws.SendData "GET /search?hl=es&q=" & buscar & " HTTP/1.0" & vbCrLf & _
"Accept: */*" & vbCrLf & _
"User-Agent: Buscador(By WarGhost)" & vbCrLf & _
"Host: www.google.es" & vbCrLf & vbCrLf
End Sub

Private Sub ws_DataArrival(ByVal bytesTotal As Long)
Dim data As String
ws.GetData data
temp = temp & data
Label1.Caption = "Buscando"
If Not InStr(1, temp, "</html>") = 0 Then
Text1.Text = Mid(temp, InStr(1, temp, "<html>"))
Label1.Caption = "Busqueda Terminada"
ws.Close
Open "C:\Busqueda.htm" For Binary Access Write As #1
Put #1, , Text1.Text
Close #1
MsgBox "Busqueda guardada en C:\Busqueda.htm", vbInformation
End If
End Sub


P.D: porque especialmente para WarGhost?

;D Salu2
¿Qué culpa tengo yo de tener la sangre roja y el corazón a la izquierda?

dPix

elmaro, al haber un dataarraival lo que hace es llamar a INTENTARE, pero nunca recibe nada, ya que le he puesto que cuando reciba datos que los ponga en un text, pero nada de nada.

Hendrix, tan solo se trata de bajar un codigo de fuente de una búsqueda en google y buscar los resultados de la primera página.

WarGhost, si, quiero que busque la palabra que esté detrás de *google, pero parece ser que todo está bien pero no funciona nada, no se que habré tocado pero no encuentro el error, voy a comparar lo que he hecho yo con lo tuyo.

PD: era dirigido principalmente a tí porque leí sobre lo del GET en un post tuyo.

Salu2

WarGhost

Esque no se que quieres hacer muy bien, si me lo explicas mejor te ayudo ;).
¿Qué culpa tengo yo de tener la sangre roja y el corazón a la izquierda?

dPix

A ver, lo que quiero es conectarme a google mediante sockets, bajar un código de fuente (de la búsqueda que sea) analizarla y quedarme con los links que llevan a las páginas (resultados) ofrecidos por google. Espero que ahora me entiendas, esta búsqueda funciona por petición previa indicando una palabra que es la que será buscada, pero no se porque no me funciona con lo que dije en el primer post.

Salu2

Robokop

Como ya te dijo Hendrix usa La apir urlDownloadtofile
mira un ejemplito
Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
Public Function DescargarGoogle(direccion As String, Directorio As String) As Boolean
    Dim valor As Long
    valor = URLDownloadToFile(0, direccion, Directorio, 0, 0)
    If valor = 0 Then DescargarGoogle = True
End Function
Private Sub Form_Load()
DescargarGoogle "http://www.google.com.mx/search?hl=es&q=busqueda+google&btnG=B%C3%BAsqueda+en+Google&meta=", "C:\links.htm"
DescargarGoogle "http://www.google.com.mx/search?hl=es&q=busqueda+google&btnG=B%C3%BAsqueda+en+Google&meta=", "C:\codigo.txt"
End Sub


Hendrix

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián

WarGhost

si pero creo que el lo que quiere es que valla cojiedo los resultado y luego los liste no?

por ejemplo:

buscas www.elhacker.net

y que salga:
www.elhacker.net
www.elhacker.net/gmailbug/
foro.elhacker.net/
...

asi no??¿?¿?
¿Qué culpa tengo yo de tener la sangre roja y el corazón a la izquierda?