1. Tải bản cài đặt AutoIT mới nhất

    Chào Khách. Nếu bạn mới tham gia và chưa cài đặt AutoIT.
    Vui lòng vào topic trên để tải bản AutoIT mới nhất nhé
    Dismiss Notice
  2. Quy định và nội quy

    Chào Khách. Vui lòng đọc kỹ nội quy và quy định của diễn đàn
    Để tránh bị ban một cách đáng tiếc nhé!
    Dismiss Notice
  3. Hướng dẫn chèn mã AutoIT trong diễn đàn

    Chào Khách. Vui lòng xem qua bài viết này
    Để biết cách chèn mã AutoIT trong diễn đàn bạn nhé :)
    Dismiss Notice

Hướng dẫn [v14.0.6 - 23/7/2019] HttpRequest cho người mới bắt đầu - Ví dụ, hình ảnh chi tiết

Thảo luận trong 'Hướng dẫn - Bài tập căn bản' bắt đầu bởi Huân Hoàng, 13/3/16.

  1. Hoàng Phú

    Hoàng Phú Thành viên mới
    • 3/6

    Tham gia ngày:
    30/10/16
    Bài viết:
    16
    Đã được thích:
    6
    Nhưng mà hình như là trong js nó k chứa dữ liệu ở web? chỉ là dữ liệu chung thì phải, iêm thử rq 2 name khác nhau nhưng js lại giống nhau
    [​IMG]
     
  2. dvhtrung

    dvhtrung Thành viên mới
    • 1/6

    Tham gia ngày:
    15/7/17
    Bài viết:
    11
    Đã được thích:
    0
    Ai cho mình 1 ví dụ login và up file trang google driver với.Mình làm hoài không được
     
  3. Huân Hoàng

    Huân Hoàng Administrator Thành viên BQT Administrator Super Moderator
    • 93/113

    Tham gia ngày:
    29/9/15
    Bài viết:
    642
    Đã được thích:
    1,181
  4. Huân Hoàng

    Huân Hoàng Administrator Thành viên BQT Administrator Super Moderator
    • 93/113

    Tham gia ngày:
    29/9/15
    Bài viết:
    642
    Đã được thích:
    1,181
    việc này thì iêm cũng có nói khá nhiều trong các bài trước rồi, thường không tìm thấy dữ liệu thì nó sẽ nằm trong js, thým view-source trên trình duyệt thì sẽ tìm thấy js sau: https://luanxt.tk/get-link-mp3-320-lossless-vip-zing/js/core.v6.min.js có chứa cách lấy token:
    [​IMG]

    => Nó là encode lxt gì đó của siteToken (siteToken thì nằm trong source html rồi)
    => Dùng hàm _JS_Execute để giải js. Tuy nhiên cực kỳ quan trọng là thằng js này hàm _JS_Execute không giải nhanh được (vì lý do gì đó, có lẽ do chứa những mã js gây lỗi cho HTMLFile Object) mà phải bật mode IE lên mới giải được:
    _JS_Execute($LibraryJS, $sCodeJS, $Name_Var_Return_Val, $ModeIE = False, $PathTempLibJS = Default)​

    => Vấn đề đã solve.


    [​IMG]

    [​IMG]

    Code:
    Mã (AutoIt):
    #include <_HttpRequest.au3>

    $rq1 = _HttpRequest(2, 'https://luanxt.tk/get-link-mp3-320-lossless-vip-zing/')
    $siteToken = StringRegExp($rq1, 'siteToken = "(.*?)"', 1)
    $siteToken = $siteToken[0]

    $token = _JS_Execute('https://luanxt.tk/get-link-mp3-320-lossless-vip-zing/js/core.v6.min.js', 'var token = lxtEnc("' & $siteToken & '")', 'token', True)
    MsgBox(4096, 'token', $token)

    $rq2 = _HttpRequest(2, 'https://luanxt.tk/get-link-mp3-320-lossless-vip-zing/get/nhaccuatui.php', 'link=https%3A%2F%2Fwww.nhaccuatui.com%2Fbai-hat%2Fhom-nay-toi-buon-phung-khanh-linh.i9XeUFThRO8Y.html&token=' & $token)
    MsgBox(4096, 'KQ', StringReplace(_HTMLDecode($rq2), '\', ''))


    *** Đã tìm ra cách không cần bật mode IE bằng cách lược bỏ những đoạn js thừa gây lỗi cho HTMLFile Object (lấy token + get link trong nháy mắt :v)
    Mã (AutoIt):
    #include <_HttpRequest.au3>

    $rq1 = _HttpRequest(2, 'https://luanxt.tk/get-link-mp3-320-lossless-vip-zing/')
    $siteToken = StringRegExp($rq1, 'siteToken = "(.*?)"', 1)
    $siteToken = $siteToken[0]

    $JSCode = 'var lxtSalt="8.length.fromCharCode(n[t>>5]>>>t%16&256)",lxtS="(65535&n)+(65535&t)";!function(t){"use strict";function n(t,n){var r=(65535&t)+(65535&n);return(t>>16)+(n>>16)+(r>>16)<<16|65535&r}function r(t,r,e,o,u,f){return n((c=n(n(r,t),n(o,f)))<<(a=u)|c>>>32-a,e);var c,a}function e(t,n,e,o,u,f,c){return r(n&e|~n&o,t,n,u,f,c)}function o(t,n,e,o,u,f,c){return r(n&o|e&~o,t,n,u,f,c)}function u(t,n,e,o,u,f,c){return r(n^e^o,t,n,u,f,c)}function c(t,n,e,o,u,f,c){return r(e^(n|~o),t,n,u,f,c)}function a(t){var n,r,e="";for(r=0;r<t.length;r+=1)n=t.charCodeAt(r),e+="0123456789abcdef".charAt(n>>>4&15)+"0123456789abcdef".charAt(15&n);return e}function l(t){return function(t){var n,r="",e=32*t.length;for(n=0;n<e;n+=8)r+=String.fromCharCode(t[n>>5]>>>n%32&255);return r}(function(t,r){t[r>>5]|=128<<r%32,t[14+(r+64>>>9<<4)]=r;var f,a,l,i,d,h=1732584193,s=-271733879,x=-1732584194,v=271733878;for(f=0;f<t.length;f+=16)a=h,l=s,i=x,d=v,s=c(s=c(s=c(s=c(s=u(s=u(s=u(s=u(s=o(s=o(s=o(s=o(s=e(s=e(s=e(s=e(s,x=e(x,v=e(v,h=e(h,s,x,v,t[f],7,-680876936),s,x,t[f+1],12,-389564586),h,s,t[f+2],17,606105819),v,h,t[f+3],22,-1044525330),x=e(x,v=e(v,h=e(h,s,x,v,t[f+4],7,-176418897),s,x,t[f+5],12,1200080426),h,s,t[f+6],17,-1473231341),v,h,t[f+7],22,-45705983),x=e(x,v=e(v,h=e(h,s,x,v,t[f+8],7,1770035416),s,x,t[f+9],12,-1958414417),h,s,t[f+10],17,-42063),v,h,t[f+11],22,-1990404162),x=e(x,v=e(v,h=e(h,s,x,v,t[f+12],7,1804603682),s,x,t[f+13],12,-40341101),h,s,t[f+14],17,-1502002290),v,h,t[f+15],22,1236535329),x=o(x,v=o(v,h=o(h,s,x,v,t[f+1],5,-165796510),s,x,t[f+6],9,-1069501632),h,s,t[f+11],14,643717713),v,h,t[f],20,-373897302),x=o(x,v=o(v,h=o(h,s,x,v,t[f+5],5,-701558691),s,x,t[f+10],9,38016083),h,s,t[f+15],14,-660478335),v,h,t[f+4],20,-405537848),x=o(x,v=o(v,h=o(h,s,x,v,t[f+9],5,568446438),s,x,t[f+14],9,-1019803690),h,s,t[f+3],14,-187363961),v,h,t[f+8],20,1163531501),x=o(x,v=o(v,h=o(h,s,x,v,t[f+13],5,-1444681467),s,x,t[f+2],9,-51403784),h,s,t[f+7],14,1735328473),v,h,t[f+12],20,-1926607734),x=u(x,v=u(v,h=u(h,s,x,v,t[f+5],4,-378558),s,x,t[f+8],11,-2022574463),h,s,t[f+11],16,1839030562),v,h,t[f+14],23,-35309556),x=u(x,v=u(v,h=u(h,s,x,v,t[f+1],4,-1530992060),s,x,t[f+4],11,1272893353),h,s,t[f+7],16,-155497632),v,h,t[f+10],23,-1094730640),x=u(x,v=u(v,h=u(h,s,x,v,t[f+13],4,681279174),s,x,t[f],11,-358537222),h,s,t[f+3],16,-722521979),v,h,t[f+6],23,76029189),x=u(x,v=u(v,h=u(h,s,x,v,t[f+9],4,-640364487),s,x,t[f+12],11,-421815835),h,s,t[f+15],16,530742520),v,h,t[f+2],23,-995338651),x=c(x,v=c(v,h=c(h,s,x,v,t[f],6,-198630844),s,x,t[f+7],10,1126891415),h,s,t[f+14],15,-1416354905),v,h,t[f+5],21,-57434055),x=c(x,v=c(v,h=c(h,s,x,v,t[f+12],6,1700485571),s,x,t[f+3],10,-1894986606),h,s,t[f+10],15,-1051523),v,h,t[f+1],21,-2054922799),x=c(x,v=c(v,h=c(h,s,x,v,t[f+8],6,1873313359),s,x,t[f+15],10,-30611744),h,s,t[f+6],15,-1560198380),v,h,t[f+13],21,1309151649),x=c(x,v=c(v,h=c(h,s,x,v,t[f+4],6,-145523070),s,x,t[f+11],10,-1120210379),h,s,t[f+2],15,718787259),v,h,t[f+9],21,-343485551),h=n(h,a),s=n(s,l),x=n(x,i),v=n(v,d);return[h,s,x,v]}(function(t){var n,r=[];for(r[(t.length>>2)-1]=void 0,n=0;n<r.length;n+=1)r[n]=0;var e=8*t.length;for(n=0;n<e;n+=8)r[n>>5]|=(255&t.charCodeAt(n/8))<<n%32;return r}(r=unescape(encodeURIComponent(t))),8*r.length));var r}function i(t,n,r){return n?r?f(n,t):a(f(n,t)):r?l(t):a(l(t))}"function"==typeof define&&define.amd?define(function(){return i}):"object"==typeof module&&module.exports?module.exports=i:t.lxtHash=i}(this),lxtS="s(n,t)"+lxtSalt;var lxtHs=lxtHash;function lxtEnc(t){return lxtHs(t+lxtS+"module.exports=h:e").substr(3,9)};var token=lxtEnc("' & $siteToken & '")'

    $token = _JS_Execute('', $JSCode, 'token')
    MsgBox(4096, 'token', $token)

    $rq2 = _HttpRequest(2, 'https://luanxt.tk/get-link-mp3-320-lossless-vip-zing/get/nhaccuatui.php', 'link=' & _URIEncode('https://www.nhaccuatui.com/bai-hat/cung-anh-ngoc-dolil-ft-hagi-ft-stee.7UiqqrlYlk0N.html') & '&token=' & $token)
    MsgBox(4096, 'KQ', StringReplace(_HTMLDecode($rq2), '\', ''))
     
     
  5. essered

    essered Thành viên
    • 18/23

    Tham gia ngày:
    11/9/16
    Bài viết:
    47
    Đã được thích:
    45
    thanks bác Huân Hoàng, bác phản hồi nhanh thật, rất chi tiết, thán phục bác hihi
     
  6. Huân Hoàng

    Huân Hoàng Administrator Thành viên BQT Administrator Super Moderator
    • 93/113

    Tham gia ngày:
    29/9/15
    Bài viết:
    642
    Đã được thích:
    1,181
    Đù, mới hướng dẫn cho thým xong qua hôm sau trang đó đã có bản fix core.v7.min.js thay cho v6, đừng bảo trang đó của thým và thým nhờ iêm là để test bảo mật nhoé =))
     
  7. essered

    essered Thành viên
    • 18/23

    Tham gia ngày:
    11/9/16
    Bài viết:
    47
    Đã được thích:
    45
    chắc nó có spy trong forum, nhờ bác mà e get luôn đc rồi kaka
     
  8. huyngoac

    huyngoac Thành viên mới
    • 1/6

    Tham gia ngày:
    5/3/18
    Bài viết:
    2
    Đã được thích:
    0
    Nơi ở:
    Thái Bình - Hà Nội
    Giúp mình với ạ, mình có 1 vấn đề khi dùng WinHttp.
    Khi mình request đến trang đích và thực hiện post, $Data2send có chứa 1 dãy token ngay tại trang đích, vấn đề đó là mỗi khi trang đích đó F5 lại thì cái token đó thay đổi.
    Nên cứ request get để lấy token, xong get thì token đó thay đổi, dẫn đến $Data2send lại khác đi nên không thể thực hiện post được.
    Mình phải làm sao để request post trong trường hợp này nhỉ?
    Trang FShare.vn đó ạ :D
     
  9. Huân Hoàng

    Huân Hoàng Administrator Thành viên BQT Administrator Super Moderator
    • 93/113

    Tham gia ngày:
    29/9/15
    Bài viết:
    642
    Đã được thích:
    1,181
    Request get để lấy token xong thì dùng nó để post bình thường thôi thým, đâu cần lấy token khác làm gì nữa đâu nhỉ, ví dụ 1 đoạn code get link fshare miễn phí

    Mã (AutoIt):
    #include <_httprequest.au3>

    $link = _FShare_DownloadFree('https://www.fshare.vn/file/TF6JKXFF4T/')
    MsgBox(4096, '',  $link)

    Func _FShare_DownloadFree($sURL)
        Local $linkcode = StringRegExp($sURL, 'fshare.vn/file/(\w+)', 1)[0]
        Local $fs_csrf = StringRegExp(_HttpRequest(2, $sURL), 'name="_csrf-app" value="(.*?)"', 1)
        If @error Then Return SetError(1)
        Local $Request = _HttpRequest(2, 'https://www.fshare.vn/download/get', '_csrf-app=' & _URIEncode($fs_csrf[0]) & '&linkcode=' & $linkcode & '&withFcode5=0&fcode5=')
        Local $sLinkDownload = StringRegExp($Request, '"url":"(.*?)"', 1)
        If @error Then Return SetError(2)
        Return $sLinkDownload[0]
    EndFunc
     

    [​IMG]
    Còn nếu không phải ý thým là như vậy thì thým nói cụ thể hơn xem, thým đang định làm gì với fshare
     
  10. huyngoac

    huyngoac Thành viên mới
    • 1/6

    Tham gia ngày:
    5/3/18
    Bài viết:
    2
    Đã được thích:
    0
    Nơi ở:
    Thái Bình - Hà Nội
    Em tìm ra lỗi rồi bác ơi, em code sai cái RememberMe mặc định =0. Gõ Java quen tay em sửa nó = 1. Cảm ơn bác nhiều nha
     
  11. Ace

    Ace Thành viên mới
    • 3/6

    Tham gia ngày:
    6/3/18
    Bài viết:
    8
    Đã được thích:
    1
    Giúp em với ạ . Bác nào hướng dẫn login và tìm hộ em cái data2send của trang https://www.bigo.tv/ với ạ . Em tìm cả trong file js mà vẫn chưa tìm được nó giấu ở đâu để login @@
     

    Các file đính kèm:

    • 3.txt
      Kích thước:
      70.5 KB
      Đọc:
      3
  12. Huân Hoàng

    Huân Hoàng Administrator Thành viên BQT Administrator Super Moderator
    • 93/113

    Tham gia ngày:
    29/9/15
    Bài viết:
    642
    Đã được thích:
    1,181
    ủa, trang này thấy có dùng js để đăng nhập gì đâu thým, làm theo cái Live HTTP Headers thým đưa thì 1 dòng đơn giản để login thôi mà, ví dụ login xong rồi lấy User Info:

    Mã (AutoIt):
    #include <_HttpRequest.au3>
    $rq1 = _HttpRequest(1, 'https://weblogin.bigo.tv/login?interfaceName=login&user=1675628030&pwd=01675628030&is_third_party=0&phone_code=84')
    $rq2 = _HttpRequest(2, 'https://www.bigo.tv/userCenter/index')
    _HttpRequest_Test( $rq2)
    [​IMG]
     
    Ace thích bài này.
  13. Ace

    Ace Thành viên mới
    • 3/6

    Tham gia ngày:
    6/3/18
    Bài viết:
    8
    Đã được thích:
    1
    ôi dồi Em cứ tìm mãi cái data2send để login mà không ngờ nó nằm ngay ở cái url luôn @@ Cảm ơn bác đã thông não giúp em :3
     
    Huân Hoàng thích bài này.
  14. Ace

    Ace Thành viên mới
    • 3/6

    Tham gia ngày:
    6/3/18
    Bài viết:
    8
    Đã được thích:
    1
    Mọi người cho em hỏi lỗi này là gì ạ ? Khi em Request tới địa chỉ url với id (là phòng của idol đang stream) kèm với cookie đã đăng nhập trước đó nhưng vẫn bị error này ạ. Bác nào đã từng gặp xem hộ giúp em với nha
    [​IMG]
     
  15. Huân Hoàng

    Huân Hoàng Administrator Thành viên BQT Administrator Super Moderator
    • 93/113

    Tham gia ngày:
    29/9/15
    Bài viết:
    642
    Đã được thích:
    1,181
    Mã (AutoIt):
    #include <_HttpRequest.au3>
    $rq1 = _HttpRequest(1, 'https://weblogin.bigo.tv/login?interfaceName=login&user=1675628030&pwd=01675628030&is_third_party=0&phone_code=84')
    $rq2 = _HttpRequest(2, 'https://www.bigo.tv/manhduung')
    _HttpRequest_Test( $rq2)
    Nhiêu đây đủ rồi thým, cookie mới tự động được lưu vào cache sau mỗi request, nên chỉ getcookie trừ khi muốn lưu lại thôi thým ợ, còn không thì không cần :v Cơ mà code thým chỗ $cookie sao lại là '$cookie' thế kia :v
     
    Ace thích bài này.
  16. Ace

    Ace Thành viên mới
    • 3/6

    Tham gia ngày:
    6/3/18
    Bài viết:
    8
    Đã được thích:
    1
    Trước tiên em cảm ơn bác đã reply câu hỏi của em ,chỗ $cookie em bị nhầm ấy bác :)) mà em gửi request vào link đó với id idol nhưng chỉ nhận được thông tin idol thôi bác chứ mình lại không có trong room ấy ạ ...Theo như bác nói thì cookie login sẽ tự động được lưu lại khi em sử dụng rq1 phải không ạ.Vậy thì theo như cách mà em làm trên 1 trình duyệt thì rq2 sẽ chuyển vào room idol nhưng em kiểm tra thì thấy không có user em đã đăng nhập ạ
     
  17. Huân Hoàng

    Huân Hoàng Administrator Thành viên BQT Administrator Super Moderator
    • 93/113

    Tham gia ngày:
    29/9/15
    Bài viết:
    642
    Đã được thích:
    1,181
    Đăng nhập rồi chứ thým, bởi vậy request đến https://www.bigo.tv/manhduung mới có nút LogOut như hình dưới, chứ không được thì đã không có nút đó rồi :v
    [​IMG]


    Rảnh rỗi làm 1 bộ UDF nho nhỏ về Bigo:
    Mã (AutoIt):
    #include <_HttpRequest.au3>
    Bigo_Login('84', '1675628030', '01675628030')

    $Info = Bigo_UserInfo()
    MsgBox(4096, 'Info', $Info)

    ;Hàm Bigo_Connect trả về mảng [0]: bc_gid và [1]: uid
    $aId = Bigo_Connect('http://www.bigo.tv/53432504') ;điền Url của một nhân vật nào đó

    Bigo_Follow($aId[1]) ;Follow người đã Connect




    Func Bigo_Login($PhoneCode, $PhoneNumber, $Password)
        Local $rq = _HttpRequest(1, 'https://weblogin.bigo.tv/login?interfaceName=login&user=' & $PhoneNumber & '&pwd=' & $Password & '&is_third_party=0&phone_code=' & StringReplace($PhoneCode, '+', '', 0, 1))
        Local $Cookie = _GetCookie($rq)
        If @error Then MsgBox(4096, 'Thông báo', 'Đăng nhập thất bại')
    EndFunc

    Func Bigo_UserInfo()
        Local $rq = _HttpRequest(2, 'http://www.bigo.tv/userCenter/getUserInfo')
        Return StringReplace(_HTMLDecode($rq), '\', '')
    EndFunc

    Func Bigo_Follow($uId)
        _HttpRequest(0, 'https://weblogin.bigo.tv/follow?bc_uid=' & $uId)
    EndFunc

    Func Bigo_Connect($sURL)
        Local $rq = _HttpRequest(2, $sURL)
        Local $aId = StringRegExp($rq, '(?s)host-other="(\d+)\&(\d+)".*?wsUrl\s?:\s?"(ws:.*?)"', 3)
        Return $aId
    EndFunc

    Func Bigo_ChangeUserProfile($nickname, $gender = 2, $hometown = '', $birthday = '1-1-1970', $status = '')
        $birthday = StringRegExpReplace($birthday, '(\d+)[\.\/\-](\d+)[\.\/\-](\d+)', '$3-$2-$1')
        Local $rq = _HttpRequest(2, 'https://www.bigo.tv/userCenter/uUserInfo', 'nick_name=' & _URIEncode($nickname) & '&gender=' & $gender & '&hometown=' & $hometown & '&birthday=' & $birthday & '&st=' & $status)
        If Not StringRegExp($rq, '"msg"\s?:\s?"success"') Then MsgBox(4096, 'Thông báo', 'Đổi thông tin thất bại')
    EndFunc

    *** Nếu ý thým là muốn auto chat, mặc dù đăng nhập thành công rồi nhưng vẫn hiện
    [​IMG]
    thì đây không phải là do chưa đăng nhập. Giờ thým thử mở https://www.bigo.tv/manhduung trên trình duyệt (đã đăng nhập) rồi Nhấp phải chọn View-Source, rồi copy source đó paste vào Notepad sau đó lưu ở dạng html thì nó cũng sẽ hiện y chang như hình trên vậy thôi, lý do là bảng chat đó liên quan js và websocket nên không thể request gửi câu chat như bình thường được :v Ngoài vụ auto chat thì hầu như những auto khác lên trang Bigo đều ổn.
     
    Ace thích bài này.
  18. Ace

    Ace Thành viên mới
    • 3/6

    Tham gia ngày:
    6/3/18
    Bài viết:
    8
    Đã được thích:
    1
    Em cảm bác về bài viết rất chi tiết của bác về bigo :3
    Em nghĩ là theo code trên thì mình đã đăng nhập ổn và reqest đến http://www.bigo.tv/manhduung room mà mình mong muốn được luôn . Nhưng có 1 cái em vẫn không rõ là mặc dù đã vào trong request vào room của idol mà lượng view của idol vẫn không tăng lên ạ (có nghĩa là vì lý do nào đó thông tin của user vẫn không truy cập vào live stream của họ được)
    Em VD: Thực hiện trên 1 trình duyệt bình thường chẳng hạn như firefox ạ thì khi đăng nhập vào http://www.bigo.tv/manhduung thì số lượng người xem sẽ tăng lên vì chính xác là mình đã đăng nhập trên web và xem live stream 1 cách bình thường .
    Nên em có thắc mắc là nó có khác gì hay không với khi mình gửi request lên server với httprequest ? Vẫn nhận lại được những thông tin giống nhau nhưng chỉ có đăng nhập bth trên firefox thì mới tăng được lượng view thôi ạ . Mong được bác chỉ giáo thêm ạ .
    [​IMG]
     
  19. Huân Hoàng

    Huân Hoàng Administrator Thành viên BQT Administrator Super Moderator
    • 93/113

    Tham gia ngày:
    29/9/15
    Bài viết:
    642
    Đã được thích:
    1,181
    Bộ đếm thì iêm bó tay rồi :v
     
    Ace thích bài này.
  20. tuoitre

    tuoitre Thành viên năng động
    • 28/34

    Tham gia ngày:
    15/9/15
    Bài viết:
    135
    Đã được thích:
    89
    thím cho iêm hỏi..tại so iêm rq đăng nhập autoitvn mà credit lại ko tăng =))
     

Chia sẻ trang này

Đang tải...