2014-11-04 11 views
8

Vorrei scaricare i contenuti di un sito web in cui gli URL sono costruitiutilizzando wget, ma ignorare parametri URL

http://www.example.com/level1/level2?option1=1&option2=2

all'interno dell'URL solo il http://www.example.com/level1/level2 è unico per ogni pagina, ei valori per opzione1 e l'opzione2 sta cambiando. In effetti, ogni pagina unica può avere centinaia di notazioni diverse a causa di queste variabili. Sto usando wget per recuperare tutti i contenuti del sito. A causa del problema, ho già scaricato più di 3 GB di dati. C'è un modo per dire a wget di ignorare tutto dietro il punto interrogativo dell'URL? Non riesco a trovarlo nelle pagine man.

+0

Speriamo che l'URL senza parametro ti restituisca ancora qualcosa di utile. –

+0

Lo fa. Non c'è differenza se c'è o non c'è nulla dietro il punto interrogativo. Sembra tracciare da dove viene il browser o così. – cootje

+0

In base alla pagina man di wget, non esiste alcuna corrispondenza con le stringhe di query con wget in questo momento. Qualche motivo specifico per usare wget non è qualcosa di simile a scrapy o arricciatura con un po 'di script di shell? –

risposta

0

Problema risolto. Ho notato che gli URL che voglio scaricare sono tutti motori di ricerca, in cui si sono formate le descrizioni utilizzando un trattino:

http://www.example.com/main-topic/whatever-content-in-this-page

Tutti gli altri URL avevano riferimenti al CMS. Ho ottenuto tutto ciò di cui avevo bisogno con

wget -r http://www.example.com -A "*-*" 

Questo ha fatto il trucco. Grazie per la condivisione dei pensieri!

+0

Sono contento che questo ha funzionato per te, ma non è una soluzione alla tua domanda iniziale, "C'è un modo per dire a wget di ignorare tutto dietro il punto interrogativo dell'URL?" kenorb ha fornito la soluzione migliore per chiunque incontri questo problema – thinkmassive

7

È possibile utilizzare --reject-regex per specificare il modello per rifiutare gli indirizzi URL specifici, ad es.

wget --reject-regex "(.*)\?(.*)" -m -c --content-disposition http://example.com/ 

Ciò rispecchiare il sito web, ma sarà ignorare gli indirizzi con il punto interrogativo - utili per il mirroring siti wiki.

+0

Grazie, questa è la migliore soluzione wget-only (senza coinvolgere strumenti aggiuntivi come un proxy di filtro). Ogni pagina html viene ancora recuperata una volta per analizzare i collegamenti, ma evita ripetutamente il recupero + cancellazione dello stesso collegamento con i parametri GET, come i collegamenti di intestazione in un elenco di file del server web. – thinkmassive