Visualizzazione risultati 1 fino 7 di 7

Discussione: [Richiesta] Codice per catturare porzione del codice sorgente di una pagina esterna.

  1. #1
    L'avatar di darkwolf
    darkwolf non è connesso Super Moderatore
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,552

    Predefinito [Richiesta] Codice per catturare porzione del codice sorgente di una pagina esterna.

    Salve ragazzi :)
    Avrei la necessità di catturare il sorgente della parte centrale di questa pagina: http://www.dlink.it/cs/Satellite?c=P...IT%2FDLWrapper in modo da riproporla sul mio forum (mantenendola aggiornata).
    Ho provato qualcosa con curl e regex ma senza gradi risultati
    Vi spiace darmi una mano?
    Grazie anticipatamente, DarkWolf.
    Ultima modifica di darkwolf : 05-01-2010 alle ore 20.19.54
    » Salvatore Noschese - L'AltroWeb | Seguimi su: facebook | twitter | Google+
    # Che aspetti? Unisciti alla community! Tanti nuovi gruppi ti aspettano


  2. #2
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Ma devi catturare cosa? Una schermata (screenshot) o il codice HTML/CSS?
    Apprezzi l'aiuto? Offrimi un caffè!

  3. #3
    L'avatar di darkwolf
    darkwolf non è connesso Super Moderatore
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,552

    Predefinito

    Citazione Originalmente inviato da miki92 Visualizza messaggio
    Ma devi catturare cosa? Una schermata (screenshot) o il codice HTML/CSS?
    Pensavo erroneamente fosse chiaro (adesso ho specificato meglio).
    Comunque, il sorgente che genera quella parte (solo html, per eventuale css me la sbrigherò da me) :)
    » Salvatore Noschese - L'AltroWeb | Seguimi su: facebook | twitter | Google+
    # Che aspetti? Unisciti alla community! Tanti nuovi gruppi ti aspettano


  4. #4
    Guest

    Predefinito

    Guarda qui http://forum.it.altervista.org/php-m...entro-div.html

    Il div da recuperare è caratterizzato da: div class="Microsite"

  5. #5
    L'avatar di darkwolf
    darkwolf non è connesso Super Moderatore
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,552

    Predefinito

    Citazione Originalmente inviato da comunitavirtuali Visualizza messaggio
    Guarda qui http://forum.it.altervista.org/php-m...entro-div.html

    Il div da recuperare è caratterizzato da: div class="Microsite"
    Si, ho visto quel post (leggendolo mi è tornata l'idea) :)
    Il problema penso dipenda dal fatto che "Microsite" contiene a sua volta altri div che quindi incasinano il tutto :/
    » Salvatore Noschese - L'AltroWeb | Seguimi su: facebook | twitter | Google+
    # Che aspetti? Unisciti alla community! Tanti nuovi gruppi ti aspettano


  6. #6
    Guest

    Predefinito

    A questo punto xpath e php per ricavare la giusta parte di ogni tabella... però è molto più lungo :)

    Con Firebug prendi l' xpath che ti seve, poi la ricavi con questo http://tuxradar.com/practicalphp/12/3/3

  7. #7
    L'avatar di darkwolf
    darkwolf non è connesso Super Moderatore
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,552

    Predefinito

    Grazie comunitavirtuali ma ce l'ho fatta ugualmente con le regex :)
    -
    Edit: riadattato il codice per fixare errori di validazione, correggere i link alle immagini e sistemare il template (per integrarlo a quello del forum):
    Demo: http://darkwolf.altervista.org/dlink/
    Codice PHP:
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "http://www.dlink.it/cs/Satellite?c=Page&childpagename=DLinkEurope-IT%2FDLGeneric&cid=1197381939061&p=1197381939061&pagename=DLinkEurope-IT%2FDLWrapper");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $res2 = curl_exec($ch);
    $pattern='#<div class="Microsite">\s*<h1>\s*</h1>\s*(.*)<p>&nbsp;</p>\s*</div>\s*</div>\s*</div>\s*</div>\s*</div>\s*#si';
    preg_match($pattern,$res2,$code);

    $cerca1 = '<p><br />';
    $sostituisci1 = '<p>';

    $cerca2 = '<div align="right">&nbsp;</div>';
    $sostituisci2 = '';

    $cerca3 = '<p>&nbsp;</p>';
    $sostituisci3 = '';

    $cerca4 = 'src="/cs/';
    $sostituisci4 = 'src="http://www.dlink.it/cs/';

    $cerca5 = '<td valign="top" bgcolor="#000000" align="left" width="100%" ';
    $sostituisci5 = '<td valign="top" class="catbg" align="left" width="100%" ';

    $cerca6 = '204, 255, 255';
    $sostituisci6 = '255, 255, 255';

    $cerca7 = '<p style="text-align: center;"><span style="font-size: 12px;">';
    $sostituisci7 = '';

    $code = preg_replace( "`(\<tr>\s*\</tr>)`is", "<tr>\n\t <td></td>\n\t</tr>",$code);
    $code = preg_replace( "`(\<p>\s*\<br />)`is", "<p>\n",$code);
    $code = preg_replace( "`(\<p align=\"right\">\s*\<br />)`is", "<p align=\"right\">\n",$code);
    $code = preg_replace( "`(style=\"width: 155px; height: 97px;\" alt=\"\" />\<br />\s*\</span>\</p>)`is", "style=\"width: 155px; height: 97px; border: 5px solid #fff;\" alt=\"\" />",$code);

    $code = str_replace($cerca1, $sostituisci1, $code);
    $code = str_replace($cerca2, $sostituisci2, $code);
    $code = str_replace($cerca3, $sostituisci3, $code);
    $code = str_replace($cerca4, $sostituisci4, $code);
    $code = str_replace($cerca5, $sostituisci5, $code);
    $code = str_replace($cerca6, $sostituisci6, $code);
    $code = str_replace($cerca7, $sostituisci7, $code);

    echo
    "\n<div style=\"width: 100%; margin: 0 auto;\">\n";
    echo
    $code[1];
    echo
    "<hr />\nPagina interamente ottenuta tramite php direttamente da D-Link.it\n</div>";
    Ultima modifica di darkwolf : 06-01-2010 alle ore 00.43.28 Motivo: Codice finale :)
    » Salvatore Noschese - L'AltroWeb | Seguimi su: facebook | twitter | Google+
    # Che aspetti? Unisciti alla community! Tanti nuovi gruppi ti aspettano


Tags for this Thread

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •