Tự động đăng nhập vào trang web dùng ID và pass --Help

Liên hệ QC

meocon01

Thành viên mới
Tham gia
29/9/08
Bài viết
29
Được thích
2
Chào các bác,

Em đăng gặp khó khăn về code tự động đăng nhập vào trang web rồi lấy dữ liệu, vấn đề là em đã tìm được cách điền uer và password bằng cách xem code của trang web đó nhưng với nút đăng nhập thì em ko tìm thấy, nên không thể tự động đăng nhập bằng code được.

Mong các bác giúp đỡ em.
Cảm ơn các bác nhiều.

PHP:
Public Sub Launch()
    Const strURL_c As String = "https://www.vietinbank.vn/ipay/vbh/timeout.do"
    Const strUsr_c As String = "user"
    Const strPwd_c As String = "****"
    Dim objIE As SHDocVw.InternetExplorer
    Dim ieDoc As MSHTML.HTMLDocument
    Dim tbxPwdFld As MSHTML.HTMLInputElement
    Dim tbxUsrFld As MSHTML.HTMLInputElement
    Dim btnSubmit As MSHTML.HTMLInputElement
    On Error GoTo Err_Hnd
     'Create Internet Explorer Object
    Set objIE = New SHDocVw.InternetExplorer
     'Navigate the URL
    objIE.Navigate strURL_c
     'Wait for page to load
    Do Until objIE.ReadyState = READYSTATE_COMPLETE: Loop
         'Get document object
        Set ieDoc = objIE.Document
        'lay truong uername/password va nut dang nhap
         Set tbxPwdFld = ieDoc.all.Item("j_password") ' j_password-ID của pass 
        Set tbxUsrFld = ieDoc.all.Item("j_username")  'j_username  -ID của ueser name
        Set btnSubmit = ieDoc.all.Item("")   ' cái này chưa biết ID cua nut dang nhap
         'Fill Fields
        tbxUsrFld.Value = strUsr_c
        tbxPwdFld.Value = strPwd_c
           'Click submit
        btnSubmit.Click
         'Wait for page to load
        Do Until objIE.ReadyState = READYSTATE_COMPLETE: Loop
Err_Hnd:       '(Fail gracefully)
            objIE.Visible = True
End Sub
 
Cảm ơn bác nha, cách của bác hay đó, giờ em biết thêm một cách để tìm đối tượng mình cần,

loanh quanh trên mạng em tìm được mã code tương tự và áp dụng thành công
PHP:
With objIE.document.forms("login")  'login là id của form đăng nhập
  .all.Item("j_username").Value = "user"
  .all.Item("j_password").Value = "*****"
  .submit
End With

bằng cách xem source code của trang web đó em tìm được phần id của phần đăng nhập là: login, thế là áp dụng thành công.

- đoạn mã code dưới đây sao lại làm máy chạy chậm thế nhỉ, có phải do vòng lặp không bác, có cách nào hay hơn không.
PHP:
While objIE.Busy
  'Do Nothing
Wend
While objIE.document.readyState <> "complete"  'doi trang web load hết.

Cảm ơn bác nhiều nha, em chưa nhìn thấy nút thank đâu, chắc là do chưa đủ bài
Mình login trên trang http:// thì được mà https:// bị lỗi, sao bác vào đc https nhỉ
 
Upvote 0
Mình login trên trang http:// thì được mà https:// bị lỗi, sao bác vào đc https nhỉ
do cái
PHP:
Dim objIE As SHDocVw.InternetExplorer
bạn có thể đổi sang các phương thức khác, ví dụ:
PHP:
("MSXML2.XMLHTTP")
 
Upvote 0
do cái
PHP:
Dim objIE As SHDocVw.InternetExplorer
bạn có thể đổi sang các phương thức khác, ví dụ:
PHP:
("MSXML2.XMLHTTP")

Người ta dùng trình duyệt web thì mới trỏ được vào các trường để điền giá trị.
MSXML2.XMLHTTP là phương thức truyền dữ liệu giữa client và server thì lấy đâu ra chỗ để điền, phải tìm được API login.
 
Upvote 0
Web KT
Back
Top Bottom