Vâng, tôi đang cố gắng đăng nhập vào một trang web bằng cách sử dụng Python và cơ giới hóa.Gửi Biểu mẫu với Cơ chế (Python)
Tôi đã có trang web mở:
site = br.open("http://example.com/login.php")
Và tôi đã có một danh sách các hình thức (với 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)>>
Tôi đã cố gắng gửi trường tên người dùng và mật khẩu.
Tôi đã cố gắng làm việc đó như thế này:
br.select_form(nr=0)
br.form["username"] = 'usernamehere'
br.form["password"] = 'passwordhere'
br.submit()
Sau đó, tôi nhận ra rằng các hình thức tôi đã cố gắng để điền vào không phải là lần đầu tiên trên trang web, nhưng thay đổi 0 không giúp với bất cứ điều gì. Tôi nên làm gì để chọn biểu mẫu trên một trang như thế này?
Tuy nhiên! Đó không phải là vấn đề duy nhất.
Khi tôi chạy nó, tôi nhận được lỗi này:
Traceback (most recent call last):
File "C:\Python26\login.py", line 34, in <module>
br.form["username"] = 'usernamehere'
...
ControlNotFoundError: no control matching name 'username'
Làm thế nào tôi có thể sửa lỗi này? D: Hay tôi làm điều đó hoàn toàn sai? Nếu đó là sau này, làm thế nào tôi sẽ đi về làm việc đó?
br.select_form (tên = "tên người dùng") ném lại một lỗi: FormNotFoundError: không có hình thức phù hợp với tên 'tên người dùng' - giống như trước, nhưng lần này với dòng tôi vừa thêm vào. – Matthew
bạn có chắc là bạn có đúng tên không? thử mẫu đơn trong br.forms(): mẫu in – tovmeod
Tích cực. Tôi đã kiểm tra br.forms() và html thô. – Matthew