2014-06-09 3 views
5

Scrapy können Anforderungs-URLs mit GET Parameter interaktiv die Antwort zu erkunden:Scrapy Shell bekommt 301 URL umgeleitet, ohne Parameter

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

Aber mit einigen Websites, bekommt meine Anfrage 301 umgeleitet und die URL-Parameter gestrippt werden:

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) 

als ich http://foo.com/mypage/?bar=baz in meinem Browser als normal besuchen ich werde nicht umgeleitet und die GET Parameter bleiben.

Kann jemand vorschlagen, wie ich vermeiden könnte, umgeleitet zu werden?

+0

schreiben Sie den ganzen Code und Fehler, den Sie haben. –

+0

Hey, ich habe den ganzen Code und die Ausgabenachricht gepostet. – Raj

+1

@ user2019135, versuchen Sie es mit der User-Agent-Zeichenfolge Ihres Browsers, z. B. mit der Einstellung ['USER_AGENT'] (http://doc.scrapy.org/en/latest/topics/settings.html#user-agent) –

Antwort

2

Inspiriert von @ paultrmbrhs Antwort in den Kommentaren, hier ist genau, wie Sie dieses Problem umgehen mit User Agent spoofing.

Zuerst finden Sie den User Agent String Ihres Browsers (Ich tat dies mit http://www.whatsmyuseragent.com/, aber es kann andere Wege geben).

Meins war

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

Jetzt in project_name/items.py die folgende Zeile hinzufügen:

USER_AGENT = "whatever the user agent string was" 

und scrapy shell "http://foo.com/mypage/?bar=baz" wird wie erwartet.