2014-06-09 10 views
5

Scrapy possono richiedere gli URL con GET parametri di esplorare in modo interattivo la risposta:Scrapy shell ottiene 301 reindirizzato alla URL senza parametri

scrapy shell "https://duckduckgo.com/?q=foo" 

Ma con alcuni siti web, la mia richiesta ottiene 301 reindirizzata ei parametri URL sono spogliato:

DEBUG: Redirecting (301) to <GET http://foo.com/mypage/> 
    from <GET http://foo.com/mypage/?bar=baz> 
DEBUG: Crawled (200) <GET http://foo.com/mypage/> (referer: None) 

Quando visito http://foo.com/mypage/?bar=baz nel mio browser come normale non vengo reindirizzato ei parametri GET rimango.

Qualcuno può suggerire come evitare di essere reindirizzato?

+0

post intero codice e errore che hai ottenuto. –

+0

Ehi, ho pubblicato l'intero codice e il messaggio di output. – Raj

+1

@ user2019135, prova a utilizzare la stringa User-Agent del browser, ad esempio con l'impostazione ['USER_AGENT'] (http://doc.scrapy.org/en/latest/topics/settings.html#user-agent) –

risposta

2

Ispirato dalla risposta di @ paultrmbrth nei commenti, ecco esattamente come aggirare questo problema utilizzando User Agent spoofing.

Innanzitutto, trovare la stringa User Agent del browser (l'ho utilizzata utilizzando http://www.whatsmyuseragent.com/ ma potrebbero esserci altri modi).

mio era

Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0 

Ora nel project_name/items.py aggiungere la seguente riga:

USER_AGENT = "whatever the user agent string was" 

e scrapy shell "http://foo.com/mypage/?bar=baz" funzionerà come previsto.

Problemi correlati