Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21

Discussione: Parsing html

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    134

    Parsing html

    Salve a tutti, ho un problema che non mi fa dormire sereno la notte

    Ho utilizzato la libreria simple_html_dom per estrarre dei dati da alcuni siti web

    i problemi sono 2 (risolti questi ho finito il programma)

    1) Quando apro la pagina con i dati esterni ci mette minimo 4 minuti di orologio ad aprirsi come mai? esiste un modo per velocizzare il processo?

    2) se volessi estrarre un dato esterno da una variabile javascript è possibile? se si come?


    nel primo caso avevo pensato di far registrare i dati estratti su un database, e poi stamparli a video da li... Ma secondo voi il tempo di attesa è uguale?

    nel secondo caso non saprei proprio come fare... estrarre da div,span (tag html) sono riuscito ma dalla variabile proprio no...

    Buona serata e grazie.

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    1) isola la parte che "tarda": si tratta della lettura della pagina (come la effettui)? del parsing (com'è impostato)? o di cos'altro?
    2) bisogna vedere cosa intendi... in linea di massima potresti "parsare" il contenuto degli script nella pagina, ma se intendi il recupero di un valore calcolato la cosa è prossima all'impossibile

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    134
    Praticamente ho fatto così

    Ho creato un file per ogni (in questo caso) prodotto il file è il seguente:


    FIle parsing:

    Codice PHP:
    <?php
    // example of how to use basic selector to retrieve HTML contents
    include('simple_html_dom.php');
     
    $html = new simple_html_dom();

    // get DOM from URL or file
    $html file_get_html('http://www.euronics.it/acquistaonline/video/tv-led-e-led-3d/samsung-ue40es7000-3d-smart-tv-/prod122004593.html');

    // find all span tags with class=gb1
    foreach($html->find('span.price') as $e)
        
    $UE40ES7000 $e->outertext;
    @
    $car "€";
    @
    $UE40ES7000 str_replace($car,,$UE40ES7000);


    ?>
    Questo file l'ho fatto per ogni prodotto, ovviamente cambiandogli la variabile per stamparlo a video. Dopodichè ho creato un file includendo tutti i file parsing e stampare tutti i prezzi su un unica tabella...

    2) ok ho capito... Peccato... ora vedo un pò se riesco ad arrangiarmi in un altro modo...


    Grazie.

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    prova a mettere un controllo dopo ogni "pezzo" per vedere dove "tarda", tipo:

    Codice PHP:
    <?php
    $ts 
    time();

    // example of how to use basic selector to retrieve HTML contents 
    include('simple_html_dom.php'); 

    $ts time()-$ts; print ($ts); exit; // "#1" <----- questa riga poi la sposti sotto

    $html = new simple_html_dom(); 

    // "#2" ...mettila qui dopo

    // get DOM from URL or file 
    $html file_get_html('.....'); 

    // "#3" ...poi qui

    // find all span tags with class=gb1 
    foreach($html->find('span.price') as $e
        
    $UE40ES7000 $e->outertext
    @
    $car "€"
    @
    $UE40ES7000 str_replace($car,,$UE40ES7000); 


    // "#4" ...poi qui

    ?>
    e esegui quattro volte il codice, poi posta qui i quattro valori.. così vediamo qual è il pezzo che fa "tardare"

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    134
    Ok provvedo a farlo ti ringrazio davvero dell'aiuto chem i stai dando

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    134
    Ecco qua i risultati:

    punto #1

    1339580652

    punto #2

    1339580707

    punto #3

    1339580753

    punto #4

    1339580782

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    mmmh... non hai messo la "differenza"? vedo come differenze di tempi (manca il primo perchè non abbiamo il timestamp di avvio: è importante... dovrebbe essere bassissimo perchè viene fatto solo l'inclusione):

    55"
    46"
    29"

    che sono troppi in tutti i casi! Per esempio il primo gap... verifichiamo così allora:

    Codice PHP:
    <?php 
    $ts 
    time();  // debug

    // example of how to use basic selector to retrieve HTML contents  
    include('simple_html_dom.php');  

    $ts time()-$ts; print "#01: $ts\"
    "
    // debug

    $html = new simple_html_dom();  

    $ts time()-$ts; print "#02: $ts\"
    "
    // debug

    // get DOM from URL or file  
    $html file_get_html('.....');  

    $ts time()-$ts; print "#03: $ts\"
    "
    // debug

    // find all span tags with class=gb1  
    foreach($html->find('span.price') as $e)  
        
    $UE40ES7000 $e->outertext;  
    @
    $car "€";  
    @
    $UE40ES7000 str_replace($car,,$UE40ES7000);  

    $ts time()-$ts; print "#04: $ts\"
    "
    // debug
    exit;

    ?>
    e riposta...

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    134
    ecco qua:


    #01: 0"
    #02: 1339582952"
    #03: 9"
    #04: 1339582952"

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    oops... una svista mia... puoi ripetere il test così come di seguito?

    Codice PHP:

    <?php  
    $ts 
    time();  // debug

    // example of how to use basic selector to retrieve HTML contents   
    include('simple_html_dom.php');   

    $te time()-$ts; print "#01: $te\"
    "
    // debug 

    $html = new simple_html_dom();   

    $te time()-$ts; print "#02: $te\"
    "
    // debug 

    // get DOM from URL or file   
    $html file_get_html('.....');   

    $te time()-$ts; print "#03: $te\"
    "
    // debug 

    // find all span tags with class=gb1   
    foreach($html->find('span.price') as $e)   
        
    $UE40ES7000 $e->outertext;   
    @
    $car "€";   
    @
    $UE40ES7000 str_replace($car,,$UE40ES7000);   

    $te time()-$ts; print "#04: $te\"
    "
    // debug 
    exit; 

    ?>
    ...cmq dovrebbero essere 0", 0", 9" e 0" quindi non ci sarebbe traccia dei lunghi tempi di cui sopra... riprova cmq e rivediamo...

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    134
    Scusami ero in pausa pranzo comunque ecco qua:

    #01: 0"
    #02: 0"
    #03: 10"
    #04: 10"

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.