Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    14

    Lettura automatica pagine web

    Non so bene quale linguaggio utilizzare, ma mi pare di aver capito che serva VB.NET

    Cosa devo fare?

    Aprire la pagina web:

    http://www.poste.it/online/cercaup/

    e fare delle ricerche: per ognuna delle province devo verificare tutti i servizi.

    Quindi avrò le combinazioni:

    Agrigento - ATM Postamat
    Agrigento - Cambiavalute

    ecc...

    Aperta la pagina con i risultati della ricerca devo poter copiare e incollare la tabella risultante su un file excel.

    Ora se quest'ultima parte è un pò più complicata non fa niente, mi basterebbe anche poter salvare solo il sorgente della pagina, che poi so io come ricavare i dati.


    Il problema dunque è:

    come faccio a fare la prima parte in modo del tutto automatico?


    Ho notato che l'url con i risultati è sempre uguale, allora stavo pensando di utilizzare un altro metodo, cercare per "frazionario" in modo tale da avere dei risultati in un URL di questo tipo:

    http://www.poste.it/online/cercaup/d...php?fraz=29047

    Credo che in questo modo si debba solo aprire una pagina con le ultime 5 cifre che cambiano di volta in volta e in giro mi pare di aver letto che si può utilizzare il comando

    Process.Start di VB.Net (anche se non ho idea ancora di dove scrivere questo codice, ma quello è l'ultimo dei problemi).

    Se così fosse mi serve solo un comando che mi:
    - legge il sorgente pagina
    - me lo salva in un file

    Chi vuole darmi qualche indicazione per poter poi approfondire il discorso da me?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di r1cky`
    Registrato dal
    Feb 2007
    Messaggi
    431
    Prova questo codice:

    codice:
    Imports System
    Imports System.IO
    Imports System.Net
    
    Namespace LeggiPoste
    	Class Program
    		Shared Sub Main(args As String())
    			Dim request As HttpWebRequest = DirectCast(WebRequest.Create("http://www.poste.it/online/cercaup/dati_ufficio.php?fraz=29047"), HttpWebRequest)
    			Dim response As HttpWebResponse = DirectCast(request.GetResponse(), HttpWebResponse)
    			saveResponse(response.GetResponseStream(), "code.html")
    			Console.WriteLine("apposto!")
    		End Sub
    
    		Shared Sub saveResponse(readStream As Stream, filename As [String])
    			Dim writeStream As New FileStream(filename, FileMode.Create)
    			Dim Length As Integer = 256
    			Dim buffer As [Byte]() = New [Byte](Length) {}
    			Dim bytesRead As Integer = readStream.Read(buffer, 0, Length)
    			While bytesRead > 0
    				writeStream.Write(buffer, 0, bytesRead)
    				bytesRead = readStream.Read(buffer, 0, Length)
    			End While
    			readStream.Close()
    			writeStream.Close()
    
    		End Sub
    	End Class
    
    End Namespace
    L'ho scritto in c# e l'ho tradotto tramite un tool automatico, spero non abbia fatto casini.
    Ho provato anche ad abbozzarti un codice per simulare le richieste dal form di ricerca ma senza successo, poichè il webserver non accetta una richiesta "liscia" (ovvero con i soli dati necessari), ma necessita di un cookie che ovviamente non abbiamo.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.