2014-05-19 8 views
5

http://robobrowser.readthedocs.org/en/latest/api.htmlकैसे robobrowser-अजगर में पोस्ट अनुरोध बनाने के लिए

मैं browser.open(myurl) का उपयोग करने और requests.post(url,data=data) के समान एक आरबी विधि की तलाश में एक API हिट करने के लिए कोशिश कर रहा हूँ।

चूंकि robobrowser अनुरोध और सुंदरता के शीर्ष पर बनाया गया है, इसलिए मुझे लगता है कि ऐसा करने का एक तरीका होना चाहिए।

+0

आप आम तौर पर पोस्ट करने के लिए प्रपत्र कार्यक्षमता का उपयोग करता हूँ; आपको बिल्कुल पोस्ट करने की ज़रूरत क्यों है? –

+1

क्या आपका मतलब जावास्क्रिप्ट से AJAX अनुरोधों का उपयोग करता है? उस मामले में 'response.session' का प्रयोग करें। –

उत्तर

4

आप एक RoboBrowser वस्तु का एक ही कुकीज़ के साथ अपने स्वयं POST रों करने के लिए फिर से उपयोग कर सकते हैं requests.Session() वस्तु:

response = browser.session.post(...) 

RoboBrowser राज्य हालांकि अपडेट नहीं किया जाएगा; आपको response ऑब्जेक्ट को RoboBrowser._update_state() विधि पर पास करना होगा।

browser._update_state(response) 

AJAX अनुरोधों के लिए आपको ऐसा करने की आवश्यकता नहीं होगी, हालांकि।

ध्यान रखें कि पुस्तकालय के भविष्य के संस्करण बदल सकते हैं कि यह कैसे काम करता है; यह एक दस्तावेज विधि नहीं है।

हालांकि, सामान्यतः आप एक साइट पर पोस्ट करेंगे क्योंकि आप एक फॉर्म सबमिट कर रहे हैं; प्रदान की गई लाइब्रेरी कार्यक्षमता (RoboBrowser.get_form(), फिर RoboBrowser.submit_form()) पर छोड़ दें।

+0

हां, आपको ऐसा करना होगा हाँ। क्या वह बड़ी समस्या है? यदि आप * बस * 'अनुरोध 'का उपयोग करना चाहते हैं तो आपको वही करना होगा। –

3

संस्करण 0.5.3 के रूप में, आप इस तरह पोस्ट अनुरोध भेज सकते हैं:

browser.open(url, method='post', data=data)

और की-मोटे ब्राउज़र की राज्य और सत्र स्वचालित रूप से अद्यतन किया जाएगा।

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