2013-10-19 6 views
6

का उपयोग कर फ़ॉर्म सबमिट करना, इसलिए मैं इसे भरने और सबमिट करने के लिए स्वचालित करना चाहता हूं और मैं ऐसा करने के लिए Requests का उपयोग कर रहा हूं।अनुरोध पाइथन

निरीक्षण तत्वों से मैं करने के लिए प्रस्तुत करने के लिए यूआरएल और submition के प्रकार (पोस्ट) पता:

method="post" 
action="/sformsubmit" 
enctype="multipart/form-data" 

मेरे समस्या यह है कि मेरे अनुरोध के माध्यम से नहीं जा रहा है और इस के लिए काफी नई किया जा रहा है मुझे यकीन है कि नहीं कर रहा हूँ है क्यूं कर।

मेरे वेबपेज पर मैं बहुत की तरह कंधे से दो बटन पक्ष है:

___________________________   ________________________________ 
    | Submit decleration |   |  Reset Form   | 
    ___________________________   ________________________________ 

और जब मुझे लगता है कि लाइन पर तत्वों का निरीक्षण मैं मिलता है:

<td align="center" colspan="2"> 
    <input type="hidden" name="inLeader" value> 
    <input type="hidden" name="inMember" value> 
    <input type="hidden" name="version" value="0"> 
    <input type="hidden" name="key" value="2013:a:c:3:2s"> 
    <input type="submit" value="Submit declaration"> 
    <input type="reset" value="Reset form"> 
</td> 

मैं निम्नलिखित कोशिश कर रहा हूँ:

>>> payload = {'inLeader':'', 'inMember':'', 'version':'0', 'key':'2013:a:c:3:2s'} 

हालांकि यह काम नहीं करता है और कोई त्रुटि उत्पन्न नहीं कर रहा है।

कोई भी मदद आभारी होगी। अग्रिम धन्यवाद

+0

आपको क्या त्रुटि मिल रही है? प्रतिक्रिया क्या है? आपका पेलोड गलत है लेकिन वास्तविक प्रतिक्रिया के बारे में जानने के बिना आपके प्रश्न का सही उत्तर देना अभी भी मुश्किल है। – aychedee

+0

मुझे कोई त्रुटि नहीं मिल रही है, ऐसा लगता है कि कुछ ठीक नहीं होता है। 'Status_code' जब मैं' p.status_code = 200' – user2897415

+0

ट्रेसबैक के माध्यम से जांचता हूं? साथ ही, जिस URL को आप पोस्ट करने का प्रयास कर रहे हैं वह अच्छा होगा। –

उत्तर

5

ठीक है, आपका पेलोड गलत है। परंतु। मुझे यकीन नहीं है कि अगर इसे बदलना वास्तव में मदद करेगा क्योंकि आपने जो त्रुटि संदेश प्राप्त किया है उसे शामिल नहीं किया है।

payload = { 
    'inLeader':'', 
    'inMember':'', 
    'version':'0', 
    'key':'2013:a:c:3:2s', 
} 

क्या आप HTML रूपों और पोस्ट अनुरोध के बारे में समझने की जरूरत है कि यह एक name विशेषता के साथ किसी भी क्षेत्र के value विशेषता भेजता है जब आप एक प्रपत्र पर एक बटन सबमिट करें क्लिक है। प्रकार submit के साथ इनपुट फ़ील्ड उदाहरण के लिए नहीं भेजा जाता है। इसमें name नहीं है। मुझे संदेह है कि inLeader और inMember फ़ील्ड में कोई डेटा नहीं है। क्या यह किसी भी तरह जावास्क्रिप्ट के माध्यम से सेट किया जा रहा है?

आप इस टिप्पणी का उल्लेख करते हैं कि आपको फ़ॉर्म तक पहुंचने के लिए लॉग इन करने की आवश्यकता है? इसका सबसे अधिक संभावना है कि आपको अनुरोध के साथ सही कुकी भेजने की भी आवश्यकता है। तो, यूआरएल पर जाकर मुझे उपयोगकर्ता नाम/पासवर्ड के लिए कहा जाता है। यह वेबसाइट basic auth का उपयोग कर रही है।

requests इसका समर्थन करता है। नीचे उदाहरण:

import requests 
from requests.auth import HTTPBasicAuth 
requests.get(url, auth=HTTPBasicAuth('your username', 'your password')) 

केवल अनुरोध प्राप्त करने का प्रयास करें और देखें कि आप कम से कम 200 प्रतिक्रिया प्राप्त कर सकते हैं या नहीं। इसका मतलब है कि लेख काम कर रहा है। फिर आप वास्तविक पोस्ट को आजमा सकते हैं और कर सकते हैं।

+0

मुझे नहीं लगता कि यह जावास्क्रिप्ट के माध्यम से सेट किया जा रहा है, मेरे पास एक अन्य फॉर्म तक पहुंच है जिसे भेजा गया है < इनपुट प्रकार = "सबमिट करें" मूल्य = "घोषणा सबमिट करें"> 'को बदल दिया गया है '<इनपुट प्रकार =" सबमिट करें "मूल्य =" घोषणा बदलें ">' और उसमें वे अभी भी खाली हैं – user2897415

+1

वास्तव में? इसे सही तरीके से डीबग करने के लिए आपको वास्तव में क्या चाहिए, वह स्रोत कोड नहीं है। लेकिन एक वास्तविक पोस्ट अनुरोध।आप Chrome क्रोम देव उपकरण के 'नेटवर्क' टैब के नीचे क्रोम में इन्हें देख सकते हैं। जब आप मैन्युअल रूप से फॉर्म जमा करते हैं तो यह पोस्ट रिकॉर्ड करेगा और आप देख सकते हैं कि कौन सी जानकारी भेजी गई है। यूआरएल मुझे ठीक लग रहा है। – aychedee

+0

मुझे यह देखने के लिए 'नेटवर्क' टैब में कहां देखना चाहिए कि मैंने क्या भेजा जा रहा है ... मैंने अनुरोध पर क्लिक किया है और 'पूर्वावलोकन' टैब में यह मुझे' एचटीएमएल दिखाता है: मैं तत्व का निरीक्षण करने में क्या देखता हूं 'तो क्या भाग मुझे दिखाता है कि – user2897415

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