Salvare completamente una pagina web di un sito qualsiasi

  • Creatore Discussione Creatore Discussione andreto
  • Data di inizio Data di inizio

andreto

Utente Attivo
5 Dic 2012
88
0
0
Ciao a tutti,
vorrei salvare una pagina web di un sito qualsiasi possibilmente mantenendo anche tutte le immagini, file css e js nel mio ftp.

I browser hanno questa funzione, con Chrome basta cliccare col tasto destro e scegliere "Salva con nome", poi basta spostare i file creati con Filezilla nel mio Ftp.

Io invece vorrei salvare direttamente la pagina web nel mio ftp senza doverla prima salvare in locale.

Ho provato vari metodi per salvare le pagine html ma in alcuni casi quando visualizzo la pagina salvata ad esempio (Wiki...dia)
mi restituisce un errore di forbidden o cose del genere.

Come potrei fare?
 
Perché non riesco a salvare le pagine di Wiki... Invece pagine di altri siti le salvo senza problemi?
 
Perché devi impostare l'header User Agent, simulando un browser reale. Con cURL:
PHP:
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
 
Perché devi impostare l'header User Agent, simulando un browser reale. Con cURL:
PHP:
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');

Sto usando questo script:
PHP:
<?php

  $url = "http://www.google.it";
        
    $ch = curl_init(); 
    
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');  
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
        
    $output = curl_exec($ch);
    $info = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    
    curl_close($ch);

    if ($output === false || $info != 200) {
    $output = null;
    }
    
 echo $output;  

?>

Il problema è che con questo USERAGENT non mi fa vedere proprio tutto quello che c'è in originale sul sito, ad esempio su Google non visualizzo il footer e la barra nera sopra è trasparente.

Cambiando USERAGENT e mettendo ad esempio quello di IE10 sembra funzionare.

Codice:
Mozilla/5.0 (compatible; MSIE 10.6; Windows NT 6.1; Trident/5.0; InfoPath.2; SLCC1; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 2.0.50727) 3gpp-gba UNTRUSTED/1.0

Anche questo però ha un problema, se provo a ricaricare lo script più volte, una volta mi fa vedere il sito come in originale (tranne ovviamente le immagini ecc...)
altre volte invece le parole del footer sono spostate.

Con altri USERAGENT ho notato anche caratteri strani o lettere accentate visualizzate male.

Come mai succede questo?
C'è qualcosa che non va nello script oppure devo trovare un USERAGENT corretto e in base a cosa?
 

Discussioni simili