Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [asp]XMLHTTP recuperare numero telefono

    salve,
    vorrei sapere come recuperare i dati:
    -nome
    -indirizzo
    -categoria
    -telefono
    -cap
    in

    questa

    pagina
    Grazie
    Marco
    Carpe diem
    Preferisco tentare che rinunziare

  2. #2

  3. #3
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    hem... è legale? :master:
    secondo me sì... se l'informazione è accessibile online perché non potrei ciucciarmi i dati? Anche google lo fa quando indicizza
    Se il buon moderatore mi da il permesso te faccio vede' come se fa (è abbstanza facile)

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,563
    Vai di RegExp allora...

    Roby

  5. #5
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    grazie Roby
    codice:
    strURL = "http://pagine.libero.it/aziende/result.jsp;jsessionid=7B2A64A7B4CE5A3A8B28A12586ED97C1?lista=01173%2C01174%2C00191&comune=napoli&parolaChiave=meccanici"
    Set objXML = CreateObject("Microsoft.XMLHTTP") 
    objXML.Open "get", strURL, False 
    objXML.Send 
    pageGet = objXML.responseText 
    Set objXML = Nothing 
    set re = Server.CreateObject("VBScript.RegExp")
    re.Pattern="<table cellspacing=""0"" cellpadding=""0"" border=""0"">\s+<tr>\s+<td class=""main-lbl"">([^<]*)</td>\s+</tr>\s+</table>\s+</td>\s+</tr>\s+<tr>\s+<td width=""10"" class=""main-lbl""></td>\s+<td class=""main-lbl-normal"">Categoria: <a[^>]+>([^<]*)</a></td>\s+</tr>\s+<tr>\s+<td width=""10"" class=""main-lbl""></td>\s+<td class=""main-lbl-normal"">\s+([^<]*)</br>\s+<a[^>]+>(\d+)</a>\s+([^<]+)<a[^>]+>([^<]+)</a>\s+
    \s+tel (\d+)\s+</td>"
    re.global=true
    re.Multiline=true
    set ris = re.Execute(pageGet)
    re.Pattern="\s+$" 'questa è per togliere gli spazi vuoti alla fine
    for each rr in ris
      set sm = rr.SubMatches
      for each ss in sm
        Response.Write re.Replace(ss,"") & "
    " & vbCrLf
      next
      Response.Write "<hr>"
    next

  6. #6
    MITICOOOOOOOOOO
    Come al solito siete persone geniali
    Grazie ancora
    Marco
    Carpe diem
    Preferisco tentare che rinunziare

  7. #7
    bella sta regexp me la ciuccio alla grande anche io

  8. #8
    ciao willybit girando ho notato che conosci molto bene quest'argomento e non sapendo a chi altri rivolgermi ti spiego gli altri miei problemi.
    Premettendo che funziona perfettamente come ricavo dalla pagina solamente
    "Pagina 1 di 10"
    ed in particolare in numero di pagina "1" e "10"?

    inoltre in questa pagina c'è
    Nessuna azienda trovata
    come ricavo quest'altra?
    Grazie
    Marco
    Carpe diem
    Preferisco tentare che rinunziare

  9. #9
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    beh... per vedere se nell'html c'è scritto "Nussuna azienda trovata" ti basta un normale InStr.
    Per le pagine la RE sarebbe
    codice:
    Pagina (\d+) di (\d+)
    così hai nei 2 submatches i due numeri
    ti faccio un esempio unico
    codice:
    strURL = "http://pagine.libero.it/aziende/result.jsp;jsessionid=7B2A64A7B4CE5A3A8B28A12586ED97C1?lista=01173%2C01174%2C00191&comune=napoli&parolaChiave=meccanici"
    'strURL = "http://pagine.libero.it/aziende/result.jsp;jsessionid=328C25E94811F5FE2A242C62F870E6B2?lista=01173%2C01174%2C00191&comune=napoli&iniziale=J&parolaChiave=meccanici"
    Set objXML = CreateObject("Microsoft.XMLHTTP") 
    objXML.Open "get", strURL, False 
    objXML.Send 
    pageGet = objXML.responseText 
    if inStr(pageGet,"Nessuna azienda trovata")>0 then
      Response.Write "Nessuna azienda trovata"
    else
      Set objXML = Nothing 
      set re = Server.CreateObject("VBScript.RegExp")
      re.Pattern="Pagina (\d+) di (\d+)"
      re.global=true
      re.Multiline=true
      set ris = re.Execute(pageGet)
      if ris.count>0 then
        Response.Write "Siamo alla pagina " & ris(0).SubMatches(0) & " su un totale di " & ris(0).SubMatches(1) & "<hr>"
      end if
      re.Pattern="<table cellspacing=""0"" cellpadding=""0"" border=""0"">\s+<tr>\s+<td class=""main-lbl"">([^<]*)</td>\s+</tr>\s+</table>\s+</td>\s+</tr>\s+<tr>\s+<td width=""10"" class=""main-lbl""></td>\s+<td class=""main-lbl-normal"">Categoria: <a[^>]+>([^<]*)</a></td>\s+</tr>\s+<tr>\s+<td width=""10"" class=""main-lbl""></td>\s+<td class=""main-lbl-normal"">\s+([^<]*)</br>\s+<a[^>]+>(\d+)</a>\s+([^<]+)<a[^>]+>([^<]+)</a>\s+
    \s+tel (\d+)\s+</td>"
      set ris = re.Execute(pageGet)
      re.Pattern="\s+$" 'questa è per togliere gli spazi vuoti alla fine
      for each rr in ris
        set sm = rr.SubMatches
        for each ss in sm
          Response.Write re.Replace(ss,"") & "
    " & vbCrLf
        next
        Response.Write "<hr>"
      next
    end if

  10. #10
    ciao willybit,
    mi dispiace disturbarti ma proprio non ci riesco. Avrò fatto 1000 tentativi ma nisba.
    In pratica la pagina in questione è leggermente diversa (la provincia invece di essere normale è un link) da quella dell'esempio e non riesco a fare il Pattern.
    Mi faresti il favore di farmi una stringa corretta ed eventualmente se hai tempo suddividerla spiegandomi i vari settori?
    Ti ringrazio anticipatamente
    Marco
    Carpe diem
    Preferisco tentare che rinunziare

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 © 2024 vBulletin Solutions, Inc. All rights reserved.