- Home
- Categorie
- Coding e Sistemistica
- Coding
- carpire cambiamento pagina
-
Io salverei tutta la pagina, o salvi la pagina in un db (in un campo abbastanza grande da contenerla) oppure salvi il file nel server e nel db solo un riferimento alla pagina (path, data, ecc).
-
ok, allora facciamo così:
fase memo pagina:
- con uno script asp, mi salvo la pagina in una cartella del mio server, e metto nel mio db il percorso alla pagina salvata, e un campo col percorso reale della pagina.
fase controllo pagina:
- controllo la pagina salvata sul mio server (come devo fare?)
- controllo la pagina reale (come devo fare?)
- registro le differenze (questo è facile :D, le posso salvare in un db)
come devo fare per i punti 2.1 e 2.2 ???
Grazie per il tuo aiuto
-
scusa, se hai salvato la pagina in locale, utilizzi lo stesso script per prendere la pagina in locale e quella remota forse aggiornata, le metti in una stringa, se sono uguali bene, altrimenti sono cambiate. Se vuoi fare cose più complicate, come capire dove è cambiata ecc, devi fare un parsing, ad esempio title description e body e vedere cosa è cambiato.
-
Scusami Cali per il ritardo,
io a dire il vero faccio proprio il parsing con l'oggetto xmlhttp, ma parso solo la pagina remota, e non ho la certezza di sapere dove cambiano le cose.Se vuoi posso postarti il mio script.
-
Se non sai dove cambiano le cose ma non fai un parsing preciso, basta che salvi la pagina come ti dicevo prima. Mi sembra il modo più facile per sapere quando cambia la pagina.
-
Se non sai dove cambiano le cose ma non fai un parsing preciso, basta che salvi la pagina come ti dicevo prima. Mi sembra il modo più facile per sapere quando cambia la pagina.
in questo modo però dovrei confrontarle di persona, invece se volessi monitorare i cambiamenti delle classifiche di 10 pagine, mi ci vorrebbe un bel pò di tempo...
so che cambia il contenuto del tag (<table o <span o <li ).
potrebbe esistere un metodo per memorizzare il contenuto di un determinato tag??
es.
<table>
<tr><td><table><tr><td>memorizza questo testo</td></tr></table ecc....memorizzo ciò che ci sta in td, della seconda tabella, ma non della prima
-
Certo che esiste, basta che fai il parsing html della pagina, ma devi nache sapere che lapagina non cambia, Ad esempio, uno potrebbe sostituire un table con li, e a qual punto il tuo parsing non avrebbe più senso,. Se sai che la struttura non cambia ma cambiano solo i contenuti dei tag, allora li parsi e vedi cosa è cambiato di volta in volta.
-
Questo è il codice che parsa la pagina,
StrURL = "pagina1.asp/" strPatt = "<span" Set objXMLHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP") objXMLHTTP.Open "GET", StrURL, false ' Richiama il file objXMLHTTP.Send ' il contenuto content = CStr(objXMLHTTP.ResponseText) statuscode = objXMLHTTP.Status Set objxml = Nothing if CInt(statuscode) = 200 then // codice di controllo pagina strng = content Dim objRegExpr Set objRegExpr = New RegExp objRegExpr.Pattern = strPatt objRegExpr.IgnoreCase = TRUE objRegExpr.Global = TRUE Dim colMatches Set colMatches = objRegExpr.Execute(strng) QuantitaSegno = colMatches.Count if QuantitaSegno <> quant then Response.write ("attenzione! la pagina ha subito cambiamenti") end if 'fine codice controllo pagina else if statuscode = 404 then Response.Write("Pagina Inesistente") else Response.Write(statuscode) end if end if ```questo script parsa una pagina che contiene una classifica di musica, ma trova solo quante occorrenze del tag <span> , e non quello che vi è contenuto dentro, dopo averle trovate, le registra in un db, con il valore quant. quindi "quant" sono le occorrenze vecchie, se le occorrenze vecchie differiscono da quelle nuove vuol dire che è stato aggiunto un tag <span * , purtroppo è un'ottimo parser per carpire se la STRUTTURA della pagina è stata cambiata come hai detto tu, ma non il contenuto del tag span... accetto qualsiasi tipo di suggerimento (o apporto modifica al codice). Grazie, ciao.
-
Puoi usare sempre una expressione regolare che ti prenda il contenuto dei tag span e salvi quello oltre al numero
-
come faccio io rilevo solo la presenza del tag,...
...ma come potrei fare per prendere il contenuto dentro al tag?
-
I modi sono molteplici, potresti ad esempio cercare <span> e </soan> e prendere quello che c'è in mezzo
-
potresti farmi un esempio pls???
-
Non vorrei scrivere cavolate, quindi controlla bene il codice, ma con "<soan>([^>]*)</span>" dovresti prendere il testo tra i tag span. Poi con
For Each Item in Matches
Response.Write Item.Value
NextPrendi quello che c'è dentro