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. nguyenvl159

    nguyenvl159 Nguyên
    • 3/6

    Tham gia ngày:
    12/7/16
    Bài viết:
    25
    Đã được thích:
    3
    Các bạn cho mình hỏi là mình dùng hàm _HttpRequest để Post 1 bài đăng lên trang Wordpress của mình thì nó báo kết quả giống trong file của Live HTTP Header trả về, nhưng mình lên trang thì không thấy đăng bài nào cả


    Hình ảnh:
    [​IMG]
     
  2. 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
    Khác cái Location kìa thým, chắc data2post sai hoặc thiếu ở đâu rồi :v
     
  3. nguyenvl159

    nguyenvl159 Nguyên
    • 3/6

    Tham gia ngày:
    12/7/16
    Bài viết:
    25
    Đã được thích:
    3
    Mình đã get đúng data2send r nhưng vẫn thế
     
  4. pamita

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

    Tham gia ngày:
    5/10/15
    Bài viết:
    2
    Đã được thích:
    1
    Em mới học http, em đọc hết các bài hướng dẫn của bác thớt rồi, làm theo tút thì rất OK, nhưng đến khi đi thực hành bên ngoài thì khó khăn quá. Bác nào rảnh có thể code mẫu cho em 1 cái login vào trang này cho em học hỏi với ạ: http://ola.vn/

    Cám ơn nhiều
     
  5. 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
    Thým phải làm từ dễ đến khó trước, chưa gì nhào vô cái khó để làm thì quắn não là phải :v Mà thým có thực sự là đã nắm những cái cơ bản nhất của bài viết này chưa ? Phải vừa đọc vừa làm chứ đừng chỉ đọc đọc đọc rồi chạy cái code cuối là coi như "đã đọc hết" thì thua :3

    Giờ ví dụ làm cái trang thým nói, ta vào trang đăng nhập ola.vn, điền user + pass vào rồi bật LHH lên. Bấm đăng nhập thì ta thấy request header như sau:

    [​IMG]

    Đập vào mắt là cái URL để Login:
    http://ola.vn/id/signin/4533f124a79df414c80500b80b3f1312
    => 4533f124a79df414c80500b80b3f1312 là chuỗi ngẫu nhiên, nó ở đâu ra ?
    Trước tiên ta request thử từ cái Referer: http://ola.vn/id/signin
    => $rq1 = _HttpRequest(2, 'http://ola.vn/id/signin'), dùng Clipput để lưu $rq1 và paste source lấy được vào notepad và tìm thử.
    => Đã tìm thấy nó trong source: <form method="post" action="/id/signin/4533f124a79df414c80500b80b3f1312 "
    => Viết hàm StringRegexp để lọc nó ra:
    Mã (AutoIt):
    $url_signing = StringRegExp($rq1, 'method="post" action="(/id/signin/.*?)"', 1)
    Tiếp theo là Data2Post:
    name và pass thì quá đơn giản rồi, còn mấy cái ZiN6Yrh.....Eutbatt6Lf9KNu tầm bậy tầm bạ này ở đâu ra ? Tìm tiếp trong source đã paste ra trong notepad thì thấy:
    <input type="hidden" name="ZiN6Yrh..." value="ee09bc511c..."/>
    <input type="hidden" name="2e7b1d..." value="Eutbatt6Lf9..."/>
    => Viết RegExp để lọc nó ra:
    Mã (AutoIt):
    $inputhidden = StringRegExp($rq1, '<input type="hidden" name="([^"]*?)" value="(.*?)"/>', 3)
    Còn deviceUid ta thấy trong source nó là rỗng. Thực ra deviceUid nó là kết quả xử lý của javascript sau: http://s1.cdn.kaspee.com/mewap/m/js/me.touch.min.js?t=jul09a (địa chỉ js này lấy trong source luôn) nhưng mình đã test thử, lấy deviceUid cũ từ LHH vẫn đăng nhập được.

    => Đủ các dữ kiện rồi thì request đăng nhập.

    Giờ ta thử request Post Status lên Ola để xem thử nhoé. Ta có request header từ LHH như sau:

    [​IMG]
    iêm sẽ nói nhanh chỗ này, gõ nhiều mỏi tay quá :v
    Ta thấy post data là:

    Thì thấy me= là status cần post, còn đống chuỗi bậy bạ đằng sau là kết quả lọc chuỗi từ dữ liệu trả về của request đến địa chỉ http://ola.vn/ajax/me/form.html

    Xong xuôi, chạy thử chương trình và thưởng thức kết quả:

    [​IMG]

    [​IMG]

    Code full:

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

    $username = ''
    $pass = ''
    $status_text = 'Thu_Test_Post_Status'

    $rq1 = _HttpRequest(2, 'http://ola.vn/id/signin')

    $url_signing = StringRegExp($rq1, 'method="post" action="(/id/signin/.*?)"', 1)

    $inputhidden = StringRegExp($rq1, '<input type="hidden" name="([^"]*?)" value="(.*?)"/>', 3)
    If UBound($inputhidden) <> 6 Then Exit MsgBox(4096, 'Lỗi', 'Không tìm đủ giá trị cần thiết')

    $rq2 = _HttpRequest(2, 'http://ola.vn' & $url_signing[0], 'name=' & $username & '&pass=' & $pass & '&remember=on&' & _URIEncode($inputhidden[0]) & '=' & _URIEncode($inputhidden[1]) & '&' & _URIEncode($inputhidden[2]) & '=' & _URIEncode($inputhidden[3]) & '&' & _URIEncode($inputhidden[4]) & '=' & _URIEncode($inputhidden[5]) & '&deviceUid=d9913e610aef51cc490d')

    $rq4 = _HttpRequest(2, 'http://ola.vn/ajax/me/form.html', 'ajax=1', '', '', 'X-Requested-With: XMLHttpRequest')

    $inputhidden = StringRegExp($rq4, '<input type="hidden" name="([^"]*?)"(?: id=".*?")? value="(.*?)"/>', 3)
    If UBound($inputhidden) <> 8 Then Exit MsgBox(4096, 'Lỗi', 'Không tìm đủ giá trị cần thiết')

    $rq5 = _HttpRequest(2, 'http://ola.vn/ajax/me/post.html', 'me=' & _URIEncode($status_text) & '&' & _URIEncode($inputhidden[0]) & '=' & _URIEncode($inputhidden[1]) & '&' & _URIEncode($inputhidden[2]) & '=' & _URIEncode($inputhidden[3]) & '&' & _URIEncode($inputhidden[4]) & '=' & _URIEncode($inputhidden[5]) & '&' & _URIEncode($inputhidden[6]) & '=' & _URIEncode($inputhidden[7]), '', '', 'X - Requested - With : XMLHttpRequest')

    MsgBox(4096, 'ID của bài post', $rq5)

    Cuối cùng, iêm nghĩ thým nên đọc và làm thật nhiều vào cho hiểu tuốt tuồn tuột rồi mới quay lại với bài trả lời này :3
     
    zCafex, Quản lượng and pamita like this.
  6. pamita

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

    Tham gia ngày:
    5/10/15
    Bài viết:
    2
    Đã được thích:
    1
    Cám ơn bác thớt có tâm nhất vbb, thực ra e mới tìm hiểu cái này từ sáng, đến giờ cũng test đc kha khá trang rồi, nhưng gặp trang đó nó ra nhiều cái dữ liệu tùm lum nên e chịu chết, nhờ có bác e thông ra đc nhiều rồi :D
     
    Huân Hoàng thích bài này.
  7. nguyenvl159

    nguyenvl159 Nguyên
    • 3/6

    Tham gia ngày:
    12/7/16
    Bài viết:
    25
    Đã được thích:
    3
    Các bạn cho mình hỏi mình dùng hàm _HttpRequest để đăng nhập, mà nó gặp lỗi này là sao các bạn

    [​IMG]
     
  8. nguyenvl159

    nguyenvl159 Nguyên
    • 3/6

    Tham gia ngày:
    12/7/16
    Bài viết:
    25
    Đã được thích:
    3
    Chắc có lẽ tình trạng mình nó khó chữa quá phải không các bạn
    Cám ơn sự giúp đỡ của các bạn
     
  9. DuyMinh

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

    Tham gia ngày:
    14/3/17
    Bài viết:
    177
    Đã được thích:
    92
    Thím tìm hiểu thử xem 302 nó có nghĩa là gì thử xem?
     
  10. nguyenvl159

    nguyenvl159 Nguyên
    • 3/6

    Tham gia ngày:
    12/7/16
    Bài viết:
    25
    Đã được thích:
    3
    Mình cũng tìm hiểu rồi bạn
    Nhưng trước thì Login vào thì không gặp tình trạng này, nhưng cách nay vài ngày thì không thể vào đc và nếu làm thế nó còn block ip của mình nữa.
    Hình như nhiều bạn gặp tình trạng này rồi.
     
  11. shinsozach

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

    Tham gia ngày:
    30/10/16
    Bài viết:
    3
    Đã được thích:
    0
    Mấy bác giúp em lấy source của thằng này về với.

    [​IMG]

    Làm sao lấy được cái ci_session

    Không có Ci_session thì lấy source về toàn bị báo
     
  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
    @shinsozach

    Đây là một trang ví dụ rất hay cho ai tìm hiểu về request những trang cần phải vượt rào mới thành công.

    LHH của iêm nó:
    Mã (Text):
    https://www.betbright.com/

    GET / HTTP/1.1
    Host: www.betbright.com
    User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:52.0) Gecko/20100101 Firefox/52.0 Cyberfox/52.2.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: en-US
    Accept-Encoding: gzip, deflate, br
    DNT: 1
    Connection: keep-alive
    Upgrade-Insecure-Requests: 1

    HTTP/2.0 200 OK
    Content-Type: text/html
    Cache-Control: no-cache
    Content-Length: 2886
    x-iinfo: 3-84079209-0 0NNN RT(1499235187748 0) q(0 -1 -1 -1) r(0 -1) B10(11,3102,0) U9
    Set-Cookie: visid_incap_177951=YqXJZ62WR12DmvVpBIOvSHODXFkAAAAAQUIPAAAAAADIsLW4fxORJQJr5VWCT7xp; expires=Wed, 04 Jul 2018 14:57:20 GMT; path=/; Domain=.betbright.com
    Set-Cookie: incap_ses_165_177951=OiHocedrdDknbr1TGTNKAnODXFkAAAAA5vnWpN9byI+uCdP2/fP2JQ==; path=/; Domain=.betbright.com
    X-Firefox-Spdy: h2
    ----------------------------------------------------------
    https://www.betbright.com/_Incapsula_Resource?SWHANEDL=6577714922163668044,12529257455546386334,7395874410949812628,746284

    GET /_Incapsula_Resource?SWHANEDL=6577714922163668044,12529257455546386334,7395874410949812628,746284 HTTP/1.1
    Host: www.betbright.com
    User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:52.0) Gecko/20100101 Firefox/52.0 Cyberfox/52.2.0
    Accept: */*
    Accept-Language: en-US
    Accept-Encoding: gzip, deflate, br
    Referer: https://www.betbright.com/
    Cookie: visid_incap_177951=YqXJZ62WR12DmvVpBIOvSHODXFkAAAAAQUIPAAAAAADIsLW4fxORJQJr5VWCT7xp; incap_ses_165_177951=OiHocedrdDknbr1TGTNKAnODXFkAAAAA5vnWpN9byI+uCdP2/fP2JQ==; ___utmvc=navigator%3Dtrue,navigator.vendor%3D,navigator.appName%3DNetscape,navigator.plugins.length%3D%3D0%3Dfalse,navigator.platform%3DWin32,navigator.webdriver%3Dundefined,plugin_ext%3Ddll,ActiveXObject%3Dfalse,webkitURL%3Dfalse,_phantom%3Dfalse,callPhantom%3Dfalse,chrome%3Dfalse,yandex%3Dfalse,opera%3Dfalse,opr%3Dfalse,safari%3Dfalse,awesomium%3Dfalse,puffinDevice%3Dfalse,__nightmare%3Dfalse,_Selenium_IDE_Recorder%3Dfalse,document.__webdriver_script_fn%3Dfalse,document.%24cdc_asdjflasutopfhvcZLmcfl_%3Dfalse,process.version%3Dfalse,navigator.cpuClass%3Dfalse,navigator.oscpu%3Dtrue,navigator.connection%3Dfalse,window.outerWidth%3D%3D0%3Dfalse,window.outerHeight%3D%3D0%3Dfalse,window.WebGLRenderingContext%3Dtrue,document.documentMode%3Dundefined,eval.toString().length%3D37,digest=76819,s=b184807a8c6a856da88b686b9068939186848b7d7a789d937d8fa4807f8eafa29c9d82627b9f6e76
    DNT: 1
    Connection: keep-alive

    HTTP/2.0 200 OK
    Cache-Control: no-cache
    Content-Type: application/javascript
    Content-Length: 29
    X-Firefox-Spdy: h2
    ----------------------------------------------------------
    https://www.betbright.com/

    GET / HTTP/1.1
    Host: www.betbright.com
    User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:52.0) Gecko/20100101 Firefox/52.0 Cyberfox/52.2.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: en-US
    Accept-Encoding: gzip, deflate, br
    Cookie: visid_incap_177951=YqXJZ62WR12DmvVpBIOvSHODXFkAAAAAQUIPAAAAAADIsLW4fxORJQJr5VWCT7xp; incap_ses_165_177951=OiHocedrdDknbr1TGTNKAnODXFkAAAAA5vnWpN9byI+uCdP2/fP2JQ==; ___utmvc=navigator%3Dtrue,navigator.vendor%3D,navigator.appName%3DNetscape,navigator.plugins.length%3D%3D0%3Dfalse,navigator.platform%3DWin32,navigator.webdriver%3Dundefined,plugin_ext%3Ddll,ActiveXObject%3Dfalse,webkitURL%3Dfalse,_phantom%3Dfalse,callPhantom%3Dfalse,chrome%3Dfalse,yandex%3Dfalse,opera%3Dfalse,opr%3Dfalse,safari%3Dfalse,awesomium%3Dfalse,puffinDevice%3Dfalse,__nightmare%3Dfalse,_Selenium_IDE_Recorder%3Dfalse,document.__webdriver_script_fn%3Dfalse,document.%24cdc_asdjflasutopfhvcZLmcfl_%3Dfalse,process.version%3Dfalse,navigator.cpuClass%3Dfalse,navigator.oscpu%3Dtrue,navigator.connection%3Dfalse,window.outerWidth%3D%3D0%3Dfalse,window.outerHeight%3D%3D0%3Dfalse,window.WebGLRenderingContext%3Dtrue,document.documentMode%3Dundefined,eval.toString().length%3D37,digest=76819,s=b184807a8c6a856da88b686b9068939186848b7d7a789d937d8fa4807f8eafa29c9d82627b9f6e76
    DNT: 1
    Connection: keep-alive
    Upgrade-Insecure-Requests: 1
    Cache-Control: max-age=0

    HTTP/2.0 200 OK
    Cache-Control: private
    Content-Encoding: gzip
    Content-Type: text/html; charset=utf-8
    Date: Wed, 05 Jul 2017 06:13:09 GMT
    Expires: Mon, 26 Jul 1997 05:00:00 GMT
    Last-Modified: Wed, 05 Jul 2017 06:13:09 GMT
    Pragma: no-cache
    Server: nginx
    Set-Cookie: ci_session=gD1GEShWH22paktQWPcdrIvnuhMHyaX75qCfPEjMhHaRFw8kv8i2ykk7skwtuo1%2BqtyEPVAgD5ii5ZR%2FH1JRVoGk4rOalBHZ%2FlZepjv7ONWgbooU5YrBPJTDrf%2BfaguDg1urhtOVf4PZ1jxKfJXC20j3H%2BsSLyVPTEwh3dH%2BhB6F7Aoeq%2Bp0PuEyHEWHnpNe86%2BrUioQ4Csyxf0GG6IjDOnfq7eH5LEfOi1j5ZyNjuUvTV66ZhHNZxQBi7JprebXRjYxNgFv2zhQlUCjuOjGJsLEmrBp%2BThi1p78LRxhhGilMtLTob1y2UiLKSCnlcbq6gXWnGfR1QQwTfINZgnsmAJ8e1uHr3qm4TD3TUSzVxJYptxk1gL0lPkwqJgb8NIXYPNFX82QQ%2FNZiTekVNt49Lt8VZIBa1GI3QpAZA3HJiM%3D; expires=Wed, 05-Jul-2017 08:13:09 GMT; Max-Age=7200; path=/; domain=.betbright.com
    Set-Cookie: bbsess=ivAFbbiyJzZprnZR217xaIwRu65; path=/; domain=.betbright.com; secure; HttpOnly
    Set-Cookie: ci_session=fUuHUClMa0dhdo1N2FY8Fy2oAeBQrlo92fbMDzuY1DRbwjIwonPYbq4vF7PcjdMN%2FsVTQxZ5Hy4cPgcHgVm0Pq0xFpZwsHAljjaIYdOOgzXs5i%2F8UzH5arDZ%2FZPdO3S1rH0FBhDNn%2FJiG1kirjJmjQRpqamAQuFTQNZq6ScKhycssrmsTrPpPYXsayZPcJphUEWsaMNjJcB50Q%2F9HDQErsjSN%2FD728M5Po81FAv3vzEYTGNp3fLS82GNoF7UDQMToeF9keNP9VxJDMm1qMH7yFEwY%2F3FinGpyU3YN1DGxgENT7WQRRsMXK2Q5KgK694LQm9n9OOxbQPfwkXF4oSOiZ%2FUZFXZoMr6P%2FNFuiI6Ayc9kV27Z7jTd9P%2F24rXF7R45im%2FptA0VBBoEw5SkChWaqObLRmgUY9ILHAA5yeG7xk%3D; expires=Wed, 05-Jul-2017 08:13:09 GMT; Max-Age=7200; path=/; domain=.betbright.com
    Set-Cookie: ___utmvc=a; Max-Age=0; path=/; expires=Sun, 25 Jun 2017 14:55:03 GMT
    Set-Cookie: nlbi_177951=PaebDxA8ilGn+lSLNhZEsgAAAAC7zO3Qtt2gZX3KPP6kB3jR; path=/; Domain=.betbright.com
    Strict-Transport-Security: max-age=31536000;
    X-Content-Type-Options: nosniff
    X-Frame-Options: SAMEORIGIN
    X-XSS-Protection: 1; mode=block
    x-iinfo: 3-84079266-84079267 NNNN CT(199 399 0) RT(1499235188208 0) q(0 0 6 -1) r(10 10) U9
    x-cdn: Incapsula
    X-Firefox-Spdy: h2
    Ta thấy nó GET https://www.betbright.com/ tận 2 lần, trường hợp request đến cùng 1 trang chỉ xảy ra khi POST đăng nhập, nhưng ta chỉ GET trang thôi mà ? Vậy rõ ràng mấu chốt ở đây là những request nằm ở giữa 2 cái GET https://www.betbright.com/ này nó "tạo ra" một thông tin truy xuất gì đó mới có thể truy xuất trang thành công.

    Giờ ta GET https://www.betbright.com/ lần thứ nhất:
    Mã (AutoIt):
    $RQ1 = _HttpRequest(2, 'https://www.betbright.com/')
    Và chỉ được 1 mẫu html như vậy:
    HTML:
    <html>
    <head>
    <META NAME="robots" CONTENT="noindex,nofollow">
    <script src="/_Incapsula_Resource?SWJIYLWA=2977d8d74f63d7f8fedbea018b7a1d05">
    </script>
    <script>

    var z="";var b="7472797B766172207868723B76617220743D6E6577204461746528292E67657454696D6528293B766172207374617475733D227374617274223B7661722074696D696E673D6E65772041727261792833293B77696E646F772E6F6E756E6C6F61643D66756E6374696F6E28297B74696D696E675B325D3D22723A222B286E6577204461746528292E67657454696D6528292D74293B646F63756D656E742E637265617465456C656D656E742822696D6722292E7372633D222F5F496E63617073756C615F5265736F757263653F4553324C555243543D363726743D373826643D222B656E636F6465555249436F6D706F6E656E74287374617475732B222028222B74696D696E672E6A6F696E28292B222922297D3B69662877696E646F772E584D4C4874747052657175657374297B7868723D6E657720584D4C48747470526571756573747D656C73657B7868723D6E657720416374697665584F626A6563742";for (var i=0;i<b.length;i+=2){z=z+parseInt(b.substring(i, i+2), 16)+",";}z = z.substring(0,z.length-1); eval(eval('String.fromCharCode('+z+')'));
    </script></head>
    <body>
    <iframe style="display:none;visibility:hidden;" src="//content.incapsula.com/jsTest.html" id="gaIframe"></iframe>
    </body></html>
    => Phải giải đống js này ra chắc rồi. iêm thì không biết tí gì về js nhoé, nhưng iêm có thể đoán: {z=z+parseInt(b.substring(i, i+2), 16)+",";} => ParseInt(..16) là chuyển Hex (Binary) về character => chuyển cái đống var b=.... về String thôi:
    - Trước tiên lọc lấy cái var b=
    Mã (AutoIt):
    $Js_Hidden = StringRegExp($RQ1, 'var b="([^"]+)"', 1)
    - Sau đó chuyển về String:
    Mã (AutoIt):
    $Js_Hidden = BinaryToString('0x' & $Js_Hidden[0])
    => wow, đúng như dự đoán, ta được đoạn js như mẫu sau:
    Mã (Javascript):
    try{var xhr;var t=new Date().getTime();var status="start";var timing=new Array(3);window.onunload=function(){timing[2]="r:"+(new Date().getTime()-t);document.createElement("img").src="/_Incapsula_Resource?ES2LURCT=67&t=78&d="+encodeURIComponent(status+" ("+timing.join()+")")};if(window.XMLHttpRequest){xhr=new XMLHttpRequest}else{xhr=new ActiveXObject("Microsoft.XMLHTTP")}xhr.onreadystatechange=function(){switch(xhr.readyState){case 0:status=new Date().getTime()-t+": request not initialized ";break;case 1:status=new Date().getTime()-t+": server connection established";break;case 2:status=new Date().getTime()-t+": request received";break;case 3:status=new Date().getTime()-t+": processing request";break;case 4:status="complete";timing[1]="c:"+(new Date().getTime()-t);if(xhr.status==200){parent.location.reload()}break}};timing[0]="s:"+(new Date().getTime()-t);xhr.open("GET","/_Incapsula_Resource?SWHANEDL=6095854848790505479,11848350858233821809,1326745181792837726,749290",false);xhr.send(null)}catch(c){status+=new Date().getTime()-t+" incap_exc: "+c;document.createElement("img").src="/_Incapsula_Resource?ES2LURCT=67&t=78&d="+encodeURIComponent(status+" ("+timing.join()+")")};
    => Ô kìa, trong cái js đó có phải chứa URL ở giữa 2 cái GET https://www.betbright.com không :v
    Mã (AutoIt):
    xhr.open("GET","/_Incapsula_Resource?SWHANEDL=6095854848790505479,11848350858233821809,1326745181792837726,749290",false)
    => Lọc lấy nó và request ngay thôi:
    Mã (AutoIt):
    $URL = StringRegExp($Js_Hidden, '"GET","(/_Incapsula_Resource[^"]+)"', 1)
    $URL = 'https://www.betbright.com' & $URL[0]
    $RQ2 = _HttpRequest(0, $URL)
    Xong xuôi, request GET https://www.betbright.com lại lần nữa và xem thành quả.

    [​IMG]

    Code:
    Mã (AutoIt):

    #include <_HttpRequest.au3>

    $RQ1 = _HttpRequest(2, 'https://www.betbright.com/')

    $Js_Hidden = StringRegExp($RQ1, 'var b="([^"]+)"', 1) ;Tách lấy giá trị của var b
    $Js_Hidden = BinaryToString('0x' & $Js_Hidden[0]) ; chuyển var b về text
    MsgBox(4096, 'Test var b', $Js_Hidden)

    $URL = StringRegExp($Js_Hidden, '"GET","(/_Incapsula_Resource[^"]+)"', 1)
    $URL = 'https://www.betbright.com' & $URL[0]
    MsgBox(4096, 'Test URL', $URL)

    $RQ2 = _HttpRequest(1, $URL) ; => Request cái URL trên là vượt được cái rào của trang này rồi nhoé.

    $RQ3 = _HttpRequest(2, 'https://www.betbright.com/')
    _FileWrite_Test($RQ3)
     
     
    zCafex and shinsozach like this.
  13. shinsozach

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

    Tham gia ngày:
    30/10/16
    Bài viết:
    3
    Đã được thích:
    0
    Thanks bác.

    Bác thật có đầu óc phân tích dữ liệu :autoit:.

    Mình cứ mò trong cái Incapsula_Resource mãi mà không ra.
     
  14. nguyenvl159

    nguyenvl159 Nguyên
    • 3/6

    Tham gia ngày:
    12/7/16
    Bài viết:
    25
    Đã được thích:
    3
    Các bạn cho mình hỏi nó hiện lỗi Warning: 6 có ý nghĩa gì và cách khắc phục được không?

    [​IMG]
     
  15. kakanet

    kakanet Thành viên năng động
    • 43/45

    Tham gia ngày:
    24/2/16
    Bài viết:
    203
    Đã được thích:
    211
    Lỗi không nhận được phản hồi _WinHttpReceiveResponse.
    Nguyên do là do host bạn request tới nó chặn.
     
    nguyenvl159 thích bài này.
  16. nguyenvl159

    nguyenvl159 Nguyên
    • 3/6

    Tham gia ngày:
    12/7/16
    Bài viết:
    25
    Đã được thích:
    3
    À mình hiểu tại sao lại có lỗi đó rồi. Thanks bạn nha
     
  17. zCafex

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

    Tham gia ngày:
    24/3/17
    Bài viết:
    6
    Đã được thích:
    1
    trang web https://vietequity.com/home lúc trước em vẫn đăng nhập và get source được,
    Nhưng giờ thì không, bác giúp e với.

    [​IMG]
     
  18. 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
    Nó request cái rẹt là xong mà, đâu vấn đề gì đâu:
    [​IMG]

    - Thým chạy thử code này xem được không ? http://code.autoit.ml/3
    - Thým đã tải UDF bản mới nhất chưa ?
     
    zCafex thích bài này.
  19. zCafex

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

    Tham gia ngày:
    24/3/17
    Bài viết:
    6
    Đã được thích:
    1
    Thank bác, em thiếu https :)
     
    Huân Hoàng thích bài này.
  20. 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
    Chắc do server nó mới nâng cấp http -> https =))


    *** Edit bài: Ở bản _HttpRequest ver12 trở đi, khi bạn điền sai http/https hoặc bên server nó nâng cấp http lên https mà code của bạn vẫn ở http thì _HttpRequest sẽ tự động redirect sang https và thông báo bạn biết server đã đổi protocol
     

Chia sẻ trang này

Đang tải...