जिस साइट पर मैं स्पाइडर की कोशिश कर रहा हूं वह जावास्क्रिप्ट का उपयोग कर रहा है:AJAX अनुरोध पोस्ट करने के लिए मैं पाइथन की मैकेनाइजेशन कैसे प्राप्त करूं?
request.open("POST", url, true);
AJAX पर अतिरिक्त जानकारी खींचने के लिए मुझे स्पाइडर की आवश्यकता है। मैंने पृष्ठ प्राप्त करने के लिए मैकेनाइजेशन प्राप्त करने के लिए
r = mechanize.urlopen("https://site.tld/dir/" + url, urllib.urlencode({'none' : 'none'}))
के विभिन्न क्रमपरिवर्तनों का प्रयास किया है, लेकिन यह हमेशा मुझे लॉगिन HTML प्राप्त करने का परिणाम देता है, यह दर्शाता है कि कुछ गलत है। फ़ायरफ़ॉक्स फ़ायरबग के अनुसार POST में कोई भी HTTP डेटा नहीं जोड़ता प्रतीत होता है, और मैं यूआरएलओपेन को "GET" के बजाय "POST" का उपयोग करने के लिए "फ़ील्ड" का उपयोग करने के लिए एक खाली फ़ील्ड जोड़ रहा हूं ताकि साइट फ़ील्ड को अनदेखा कर सके। मैंने सोचा कि मैकेनाइज के यूआरलोपेन में कुकीज़ शामिल हैं। लेकिन एचटीटीपीएस होने के कारण लेनदेन को डीबग करने के लिए तार करना मुश्किल है।
क्या कोई बेहतर तरीका है?
मैकेनाइजेशन के लिए सभ्य एपीआई दस्तावेज प्रतीत नहीं होता है, उदाहरण के लिए। यह कष्टप्रद है।
अंतरिक्ष को पोस्ट मोड में कैसे रखा जाता है? क्या यह सिर्फ डेटा नहीं है, या पोस्ट को मशीनीकरण के लिए एक स्थान के रूप में परिभाषित किया गया है? – brainysmurf
@brainysmurf अंतरिक्ष के बिना इसका एक अनुरोध है, लेकिन डेटा की आपूर्ति करके यह एक POST अनुरोध में बदल जाता है, और एक स्थान सबसे छोटा सबसे सरल "डेटा" प्रदान कर सकता है जो मैं प्रदान कर सकता हूं। अंतरिक्ष प्रति से संबंधित कुछ खास नहीं है। – fret