2014-06-09 45 views
5

Scrapy可以請求的URL與GET參數,以交互方式探索的響應:Scrapy殼得到301重定向到URL不帶參數

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

但隨着一些網站,我的請求得到301重定向和URL參數被剝離:

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) 

當我在瀏覽器中正常訪問http://foo.com/mypage/?bar=baz時,我沒有重定向,仍然保留GET參數。

任何人都可以建議我如何避免被重定向?

+0

發佈整個代碼和你得到的錯誤。 –

+0

嘿,我發佈了整個代碼和輸出消息。 – Raj

+1

@ user2019135,嘗試使用瀏覽器的用戶代理字符串,例如使用['USER_AGENT'設置](http://doc.scrapy.org/en/latest/topics/settings.html#user-agent) –

回答

2

受到@ paultrmbrth在評論中的回答的啓發,下面是如何使用User Agent spoofing解決此問題的方法。

首先,找到您的瀏覽器的用戶代理字符串(我使用http://www.whatsmyuseragent.com/,但可能有其他方式)。

我的是

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

現在project_name/items.py增加如下一行:

USER_AGENT = "whatever the user agent string was" 

scrapy shell "http://foo.com/mypage/?bar=baz"會達到預期效果。