2014-06-09 8 views
5

Scrapy यूआरएल का अनुरोध कर सकते सहभागी प्रतिक्रिया का पता लगाने के हो जाता है:Scrapy खोल 301 <code>GET</code> मानकों के साथ पैरामीटर के बिना 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/ का उपयोग करके किया है लेकिन अन्य तरीके भी हो सकते हैं)।

USER_AGENT = "whatever the user agent string was" 

और scrapy shell "http://foo.com/mypage/?bar=baz" अपेक्षा के अनुरूप काम करेगा:

मेरा

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

अब project_name/items.py में निम्नलिखित पंक्ति जोड़ रहा था।

संबंधित मुद्दे