के साथ प्रपत्र सबमिट करना ठीक है, मैं पाइथन और मशीनीकरण का उपयोग करके किसी साइट पर लॉगिन करने का प्रयास कर रहा हूं।मैकेनाइजेशन (पायथन)
मुझे मिल गया है साइट खोला:
site = br.open("http://example.com/login.php")
और मैं (br.forms के साथ) रूपों की एक सूची मिल गया है।
<GET http://example.com/search.php application/x-www-form-urlencoded
<HiddenControl(search=1) (readonly)>
...
<POST http://example.com/login.php application/x-www-form-urlencoded
<TextControl(username=)>
<PasswordControl(password=)>
<CheckboxControl(stay=[1])>
<SubmitControl(<None>=Log in) (readonly)>>
मैं उपयोगकर्ता नाम और पासवर्ड फ़ील्ड जमा करने का प्रयास कर रहा हूं।
मैं इस तरह से यह कर की कोशिश की:
br.select_form(nr=0)
br.form["username"] = 'usernamehere'
br.form["password"] = 'passwordhere'
br.submit()
तब मुझे एहसास हुआ कि मैं रूपों में भरने के लिए कोशिश कर रहे थे पृष्ठ पर पहले नहीं थे, लेकिन बदलते 0 कुछ भी साथ मदद नहीं की। इस तरह के पेज पर फॉर्म का चयन करने के लिए मुझे क्या करना चाहिए?
हालांकि! यह एकमात्र समस्या नहीं है।
Traceback (most recent call last):
File "C:\Python26\login.py", line 34, in <module>
br.form["username"] = 'usernamehere'
...
ControlNotFoundError: no control matching name 'username'
मैं इसे कैसे ठीक कर सकते हैं:
जब मैंने इसे चलाने के लिए, मैं इस त्रुटि मिलती है? डी: या मैं इसे पूरी तरह से गलत कर रहा हूँ? यदि यह उत्तरार्द्ध है, तो मैं इसे करने के बारे में कैसे जाऊं?
br.select_form (name = "username") एक त्रुटि को वापस फेंक देता है: FormNotFoundError: कोई फ़ॉर्म मिलान करने वाला नाम 'उपयोगकर्ता नाम' - जैसा कि पहले जैसा नहीं है, लेकिन इस बार मैंने अभी लाइन को जोड़ा है। – Matthew
क्या आप वाकई सही नाम रखते हैं? br.forms() में फॉर्म के लिए प्रयास करें: प्रिंट फॉर्म – tovmeod
सकारात्मक। मैंने br.forms() और कच्चे HTML की जांच की। – Matthew