2012-10-23 18 views
10

Dopo aver corretto il codice di un sito Web per utilizzare un CDN (riscrivendo tutti gli URL nelle immagini, js & css), Ho bisogno di testare tutte le pagine del dominio per assicurarmi che tutte le risorse vengano recuperate dal CDN.Come scaricare un sito Web completo?

Tutte le pagine dei siti sono accessibili tramite link, senza pagine isolate.

Attualmente sto usando Firebug e controllando la vista "Netto" ...

C'è qualche modo automatizzato per dare un nome di dominio e richiedere tutte le pagine + risorse del dominio?

Aggiornamento:

OK, ho trovato che posso usare wget come così:

wget -p --no-cache -e robots=off -m -H -D cdn.domain.com,www.domain.com -o site1.log www.domain.com 

opzioni spiegate:

  • -p - risorse scaricare troppo (immagini, css , js, ecc.)
  • --no-cache - ottenere l'oggetto reale, non voler tornare di server cache oggetto
  • -e robots=off - disprezzo robots e no-follow direzioni
  • -m - sito mirror (seguire i link)
  • -H - host campata (seguire altri domini troppo)
  • -D cdn.domain.com,www.domain.com - specificare i domini strega da seguire, altrimenti seguirà tutti i link dalla pagina
  • -o site1.log - accedere a file site1.log
  • -U "Mozilla/5.0" - opzionale: falsificare l'user agent - utile se il server restituisce i dati differenti per i diversi navigatore
  • www.domain.com - il sito per scaricare

Enjoy!

risposta

9

La documentazione wget ha questo bit in esso:

In realtà, per scaricare una singola pagina e tutti i suoi requisiti (anche se esistono su siti web separati), e assicurarsi che i lotto display correttamente localmente , questo autore ama usare alcune opzioni in aggiunta a '-p':

 wget -E -H -k -K -p http://site/document 

la chiave è l'opzione -H , che significa --span-hosts -> go to foreign hosts when recursive. Non so se questo valga anche per i normali collegamenti ipertestuali o solo per le risorse, ma dovresti provarlo.

È possibile prendere in considerazione una strategia alternativa. Non è necessario scaricare le risorse per verificare che siano referenziate dal CDN.Si può solo ottenere il codice sorgente per le pagine che ti interessa (è possibile utilizzare wget, come hai fatto tu, o curl, o qualcos'altro) e:

  • analizzarlo utilizzando una libreria - quale dipende sulla lingua che stai utilizzando per lo scripting. Controllare ogni <img />, <link /> e <script /> per i collegamenti CDN.
  • utilizzare regex per verificare che gli URL delle risorse contengano il dominio CDN. See this :), anche se in questo caso limitato potrebbe non essere eccessivamente complicato.

È inoltre necessario controllare tutti i file CSS per i collegamenti url(), ma devono anche puntare alle immagini CDN. A seconda della logica della tua applicazione, potrebbe essere necessario verificare che il codice JavaScript non crei immagini che non provengono dal CDN.

+0

+1 Risposta piacevole. – Graham

+0

Grazie per la risposta dettagliata! Il -H ha risolto il mio problema. Voglio scaricare i file dal CDN per vedere che sono tutti collegati correttamente, se non sono wget avrà un errore. – SimonW