Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Scrape efficiente

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    15

    Scrape efficiente

    Innanzitutto buongiorno a tutti.

    Ho un quesito da porre alla vostra cortese attenzione, nella speranza di trovare a breve la retta via.

    Inizio con il presentare l'obiettivo: vorrei realizzare una funzione che leggendo termini e condizioni di vari siti web (di una particolare categoria), ne monitorizzi le modifiche, che saranno poi visualizzate nel mio sito, con una sorta di confronto tra la versione attuale e quelle precedenti.

    L'operazione di lettura dati, e salvataggio in db mysql, dovrebbe essere effettuata da cronojob. Immaginandola un'operazione lunga e laboriosa meglio farla la notte.

    Mi è stato suggerito di effettuare un scrape delle pagine, operazione banale grazie alla libreria curl di php. Il problema è che le pagine ricercate non hanno uno standard, quindi c'è chi ha scritto termini e condizioni in tabelle annidate, chi in liste, chi in div, chi in uno stile tutto suo. Come posso eseguire l'operazione e ottenere solo il testo che mi serve?

    Spero di essermi spiegato nel modo più chiaro possibile, ringrazio chiunque per l'attenzione e porgo cordiali saluti e buon lavoro a tutti.

    Andrea Trovato

  2. #2
    Lo scraping non è mai semplice e nel tuo caso hai trovato una delle ipotesi meno immediate per chi comincia.
    Non c'è un modo univoco per lavorare.

    Hai 2 possibilità:

    1. realizzi un parser ad hoc per ogni pahgina che individui.
    Scelta eccellente ma molto molto dispendiosa nella creazione e nel mantenimento.

    2. crei un sistema un po' più sofisticato che prima identifichi dei termini comuni (keyword, frasi, etc) e poi analizza la posizione nel contesto della pagina e recupera l'intero contenuto delle condizioni d'uso.

    In entrambi i casi devi avere una padronanza quasi perfetta delle espressioni regolari.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    15
    bhe, sulle espressioni regolari ho fatto un bel corso all'università, un annetto e mezzo fa. Non so bene come si impostano in php, ma ci metterò poco a scoprirlo.

    il problema della prima soluzione è che le pagine da analizzare sono tante, qualche migliaio. Inoltre se al gestore gira il pallino di cambiare lo stile di visualizzazione, la soluzione, per quel sito, è da riscrivere.

    Per quanto riguarda la seconda soluzione dovrei ragionarci un attimo. Ma temo che non ci siano dei termini comuni in senso assoluto. :master: Ci devo ragionare.

    Ovviamente il problema grosso, a mio avviso, si presenta solo per la prima lettura. Nel monitoraggio successivo si possono sfruttare le informazioni già note per effettuare la ricerca.

    Per questo motivo pensavo anche di realizzare una soluzione semi-automatica, dispendiosa all'inizio ma se la richiesta di aiuto è minima, accettabile. Ma anche per questa soluzione, al momento, ho avuto idee poco brillanti.

  4. #4
    Ovviamente il problema grosso, a mio avviso, si presenta solo per la prima lettura. Nel monitoraggio successivo si possono sfruttare le informazioni già note per effettuare la ricerca.
    Assunzione errata.
    Le pagine cambiano così come la disposizione dei contenuti all'interno di un ambiente.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    15
    credo che agirò così, correggimi se è un'idea sballata.

    creo una serie di espressioni regolari per ogni sito. alcune saranno le stesse, quindi immagino che su 100 siti dovrò realizzare una 60na di espressioni regolari.
    salvo nel db quale espressione è collegata ad ogni sito.
    La funzione legge l'identificativo della funzione e la richiama tramite uno switch case, ad esempio.

    E' corretto? le espressioni regolari nasceranno dallo studio della pagina, e saranno pressapoco del tipo:
    Codice PHP:
    if(eregi('<div id="content"(.+)</div>'$testo$regs)){
        echo 
    "Regole: " $regs[1];


  6. #6
    L'idea è sensata, però attenzione perché non sempre potrebbe bastarti una sola regexp.
    Più stringi la regexp meno flessibilità hai nel caso di cambio del contenuto HTML.

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.