Tôi muốn viết một kịch bản Python để tự động đăng nhập vào tài khoản sử dụng băng thông rộng của tôi. Tôi chưa bao giờ gửi POST trước và tôi đang gặp rắc rối với nó.Python 3, urllib POST gửi
import urllib.request, urllib.parse, urllib.error
import socket
try:
details = urllib.parse.urlencode({ 'IDToken1': 'USERNAME', 'IDToken2': 'PASSWORD' })
url = urllib.request.Request('https://login1.telecom.co.nz/distauth/UI/Login?realm=XtraUsers&goto=https%3A%2F%2Fwww.telecom.co.nz%3A443%2Fjetstreamum%2FxtraSum%3Flink%3Drdt', details)
url.add_header("User-Agent","Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.29 Safari/525.13")
responseData = urllib.request.urlopen(url).read().decode('utf8', 'ignore')
responseFail = False
except urllib.error.HTTPError as e:
responseData = e.read().decode('utf8', 'ignore')
responseFail = False
except urllib.error.URLError:
responseFail = True
except socket.error:
responseFail = True
except socket.timeout:
responseFail = True
except UnicodeEncodeError:
print("[x] Encoding Error")
responseFail = True
print(responseData)
Từ HTML Tôi có nguồn gốc mà IDToken1
là id tên truy cập và IDToken2
là id mật khẩu.
Đây là vấn đề của tôi:
Khi tôi nhập đúng tên người dùng và mật khẩu, tải trang đăng nhập, nhưng:
Khi tôi nhập tên người dùng hoặc mật khẩu không chính xác, tôi nhận được một trang có nội dung:
Máy chủ này đã gặp phải lỗi nội bộ ngăn không cho nó thực hiện yêu cầu của bạn. Nguyên nhân có khả năng nhất là cấu hình sai. Vui lòng yêu cầu quản trị viên tìm kiếm thư trong nhật ký lỗi của máy chủ.
Vâng, điều này là rất khó khăn mà không nhìn thấy trang thực tế bạn đang sử dụng ... có lẽ bạn nên kiểm tra những gì đang thực sự được gửi bởi trình duyệt của bạn với các dev Chrome công cụ hoặc gói sniffer như Wireshark? – Strayer