2013-07-12 12 views
8

के start_urls में पोस्ट डेटा कैसे भेजें, मैं केवल एक वेबसाइट को क्रॉल करना चाहता हूं जो केवल पोस्ट डेटा का समर्थन करता है। मैं सभी अनुरोधों में पोस्ट डेटा में क्वेरी पैराम्स भेजना चाहता हूं। इसे कैसे प्राप्त करें?स्प्रैयर स्पाइडर

उत्तर

10

POST अनुरोध स्केपर के Request या FormRequest कक्षाओं का उपयोग करके किए जा सकते हैं।

इसके अलावा, start_urls संपत्ति के बजाय start_requests() विधि का उपयोग करने पर विचार करें।

उदाहरण:

from scrapy.http import FormRequest 

class myspiderSpider(Spider): 
    name = "myspider" 
    allowed_domains = ["www.example.com"] 

    def start_requests(self): 
     return [ FormRequest("http://www.example.com/login", 
        formdata={'someparam': 'foo', 'otherparam': 'bar'}, 
        callback=self.parse) ] 

आशा है कि मदद करता है।

+1

लेकिन 'अनुरोध' या 'FormRequest' के कौन से पैरामीटर को पोस्ट डेटा से पहले करना चाहिए? 'बॉडी' या 'फॉर्मडाटा'? – Friedmannn

+0

आपको पोस्ट डेटा के लिए 'फॉर्मडाटा' dict का उपयोग करना चाहिए। – lgaggini

+0

आप इसे यूआरएल की सूची के साथ कैसे करते हैं? – CodeGuru

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