salve,
vorrei sapere come recuperare i dati:
-nome
-indirizzo
-categoria
-telefono
-cap
in
questa
pagina
Grazie
Marco
salve,
vorrei sapere come recuperare i dati:
-nome
-indirizzo
-categoria
-telefono
-cap
in
questa
pagina
Grazie
Marco
Carpe diem
Preferisco tentare che rinunziare
E' legale?
Roby
www.creamweb.it [v. 3.0]
:: Script ASP!
:: Web directory gratuita!
:: Campioni del mondo!
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)
Vai di RegExp allora...
Roby
www.creamweb.it [v. 3.0]
:: Script ASP!
:: Web directory gratuita!
:: Campioni del mondo!
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
MITICOOOOOOOOOO
Come al solito siete persone geniali
Grazie ancora
Marco
Carpe diem
Preferisco tentare che rinunziare
bella sta regexp me la ciuccio alla grande anche io
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
ed in particolare in numero di pagina "1" e "10"?"Pagina 1 di 10"
inoltre in questa pagina c'è
come ricavo quest'altra?Nessuna azienda trovata
Grazie
Marco
Carpe diem
Preferisco tentare che rinunziare
beh... per vedere se nell'html c'è scritto "Nussuna azienda trovata" ti basta un normale InStr.
Per le pagine la RE sarebbe
così hai nei 2 submatches i due numericodice:Pagina (\d+) di (\d+)
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
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