2013-06-19 20 views
29

Quando eseguo questo comando:Siti non accettando utente wget intestazione agente

wget --user-agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:21.0) Gecko/20100101 Firefox/21.0" http://yahoo.com 

... ottengo questo risultato (con niente altro nel file):

<!-- hw147.fp.gq1.yahoo.com uncompressed/chunked Wed Jun 19 03:42:44 UTC 2013 --> 

Ma quando corro wget http://yahoo.com con l'opzione --user-agent, ottengo l'intera pagina.

L'agente utente è la stessa intestazione inviata dal browser corrente. Perché succede? C'è un modo per assicurarsi che l'agente utente non venga bloccato quando si usa wget?

risposta

51

Sembra che il server di Yahoo esegua un'euristica basata su User-Agent in un caso l'intestazione Accept sia impostata su */*.

Accept: text/html

ha fatto il trucco per me.

ad es.

wget --header="Accept: text/html" --user-agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:21.0) Gecko/20100101 Firefox/21.0" http://yahoo.com 

Nota: se non si dichiara Accept intestazione poi wget aggiunge automaticamente Accept:*/* che significa dammi tutto quello che hai.

+0

Non è solo Yahoo a filtrare richieste come questa - Qualcosa di cui essere sempre consapevoli! – user3791372

0

è necessario impostare sia l'user-agent e referer:

wget --header="Accept: text/html" --user-agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:21.0) Gecko/20100101 Firefox/21.0" --referrer connect.wso2.com http://dist.wso2.org/products/carbon/4.2.0/wso2carbon-4.2.0.zip 
22

ho creato un file ~/.wgetrc con il seguente contenuto (ottenuto da askapache.com ma con un user agent più recente, perché altrimenti non ha fatto lavorare sempre):

header = Accept-Language: en-us,en;q=0.5 
header = Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
header = Connection: keep-alive 
user_agent = Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:40.0) Gecko/20100101 Firefox/40.0 
referer =/
robots = off 

Ora io sono in grado di scaricare dalla maggior parte (tutti) la condivisione di file-(streaming video) siti?.

+0

Questo ha funzionato bene per me. –