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. 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
    Cám ơn bác, em làm đc rùi... bác có cho thêm hướng dẫn gì đó nữa đi ạ... chỉ get sources thôi thì cũng chưa đủ xài ạ :") ... mà nhiều cái nó không có dòng connection : keep-alive... thì mình điền cái gì vào hả bác ?? hay mình để trống...
     
    kamsamita1 and Tungtata like this.
  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
    @tuoitre Thì chủ yếu GET với POST là hết 99% trường hợp rồi còn gì nữa đâu thým ??? :v:v Thực ra mấy cái lên quan đến Addition có điền cũng đc ko có cũng không sao, nếu không ra kết quả như ý thì mới điền vào thôi :3
     
    kamsamita1 thích bài này.
  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
    @Ngọc Yến
    InetGet là tải nhanh gọn lẹ rồi mà :p

    Còn nếu bằng WinHttp thì:
    Mã (AutoIt):
    $pic = _HttpRequest(-2 hoặc -3, $URL hình)
    $hOpen = FileOpen(@DesktopDir & '\Test.jpg', 2 + 16)
    FileWrite($hOpen, $pic)
    FileClose($hOpen)
    Cơ mà cảm ơn bạn với câu hỏi này, nhờ vậy mình tìm ra 1 bug của UDF là nếu tải hình khi $iReturn = -3 (không gzip - trả về Binary) thì nó sẽ ra sai vì không đúng format Binary, kaka. Cảm ơn thêm 1 lần nữa, mình sẽ fix vào lần Update sau. :D:D:D

    Với lại ở lần Update sau mình cũng dẹp luôn vụ 2 với 3 (gzip với không gzip) này luôn cho đỡ hack não, ra là thêm Option Decompress_All là nó ko cần xét đến nữa :confused:
     
    kamsamita1 and Ngọc Yến like this.
  4. Ngọc Yến

    Ngọc Yến Thành viên
    • 13/23

    Tham gia ngày:
    11/6/16
    Bài viết:
    24
    Đã được thích:
    27
    e cũng vừa search ra là dùng inet nên xóa cmt nhưng http của bác hay hơn.thank bác :D
     
    kamsamita1 thích bài này.
  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
    Đã update ver mới :p:p:p
     
    kamsamita1 thích bài này.
  6. Ngọc Yến

    Ngọc Yến Thành viên
    • 13/23

    Tham gia ngày:
    11/6/16
    Bài viết:
    24
    Đã được thích:
    27
    Bác cho e hỏi sao cái thằng "https://www.google.com/trends/hottrends" em get source nó mà chỉ ra title thôi ạ, ko ra được nội dung của nó. Với em hỏi thêm e muốn làm cái tool nhỏ là với 1 từ bất kì thì nó sẽ tải 10 ảnh đầu tiên từ gg image với từ đó thì làm như nào ạ. Em thử get source với keyword đó rồi. Nó có trả về nhưng tìm trong code source không có link của ảnh để có thể tải được hay bác có cách nào tải mà ko cần link ko ạ @@ em cảm ơn ạ :D
     
    kamsamita1 thích bài này.
  7. 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
    *** Update: Đã có thể lấy được nội dung Hottrends ở câu hỏi 1, xem ở cuối bài viết

    1/ Cái link hottrends này lấy được source chứ không phải không có, bạn thử chạy 1 trong 2 code sau:
    Mã (AutoIt):
    #include <_httprequest.au3>
    ClipPut(_HttpRequest(2, 'https://www.google.com/trends/hottrends'))
    hoặc
    Mã (AutoIt):
    ClipPut(BinaryToString(InetRead('https://www.google.com/trends/hottrends'), 4))
     
    Paste kết quả vào Notepad sẽ thấy 2 thằng cùng ra 1 kết quả là 1 cái source dài ngoằng, trong đó có 1 đoạn sau:
    <span class="unsupported-message unsupported-message-browser">Bạn đang sử dụng trình duyệt không được hỗ trợ. Một số tính năng có thể hoạt động không chính xác. Hãy nâng cấp lên <a href="https://whatbrowser.org" target="blank_">trình duyệt hiện đại</a>, chẳng hạn như <a href="https://www.google.com/chrome" target="blank_">Google Chrome</a>.</span><span class="unsupported-message unsupported-message-device">
    => Cái này mình nghĩ nó chèn javascript để nhận biết coi có đang thực hiện truyền nhận dữ liệu trên trình duyệt không :v Đoán vậy thôi, chả biết nữa :v

    2/ Xem LHH thì thấy được 1 cái Request liên quan và viết thành code như thế này:
    Mã (AutoIt):

    #include <_httprequest.au3>

    Local $Keyword = 'chuan'

    Local $a, $b, $c
    $a = _URLDecode(_HttpRequest(2, 'https://www.google.com.vn/search?site=imghp&tbm=isch&source=hp&biw=1024&bih=669&q=' & $Keyword & '&oq=' & $Keyword))
    $b = StringRegExp($a, '"data:image/jpeg;base64,(.*?)"', 3)
    _ArrayDisplay($b, 'Ảnh bị mã hoá Base64')
    For $i = 0 To UBound($b) - 1
        $c = _B64Decode($b[$i])
        $hOpen = FileOpen(@DesktopDir & '\' & $i & '.jpg', 2 + 8 + 16)
        FileWrite($hOpen, $c)
        FileClose($hOpen)
    Next
     
    Trong đó: Phải có _URLDecode vì trong source html có những chỗ bị mã hoá dạng \u, phải giải mã ra mới lấy được chính xác dữ liệu ảnh base64 trong source.

    P/S: Chơi auto với anh Google thì tốt nhất phải sử dụng đến mấy cái API nó cung cấp thôi chứ chơi khơi khơi nhìn LHH truyền nhận không ăn thua vì nó mã hoá, bảo mật tè le hết :v


    -------------Cập nhật bài viết------------
    Ở câu 1, nguyên nhân chỉ ra trang trống (do source chỉ có css và javascript) là do link đó không phải là link để tải về các Items của hottrends. Link đúng để lấy các Items là: https://trends.google.com/trends/hottrends/hotItems

    Mã (AutoIt):
    #include <_HttpRequest.au3>
    $rq = _HttpRequest(2, 'https://trends.google.com/trends/hottrends/hotItems', 'ajax=1&pn=p1&htd&htv=l')
    _HttpRequest_Test(_HTMLDecode($rq))
     
     
    Chỉnh sửa cuối: 17/11/17
    kamsamita1 and Ngọc Yến like this.
  8. Ngọc Yến

    Ngọc Yến Thành viên
    • 13/23

    Tham gia ngày:
    11/6/16
    Bài viết:
    24
    Đã được thích:
    27
    Cảm ơn bác nhé :D
     
    kamsamita1 thích bài này.
  9. langtudoncoi

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

    Tham gia ngày:
    24/10/16
    Bài viết:
    3
    Đã được thích:
    3
    [​IMG]
    Các bác cho e hỏi ký tự trong hình là gì vậy ạ
     
    kamsamita1 thích bài này.
  10. 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
    @langtudoncoi Đó là đoạn token mà trang đó tạo ra thôi, không cần quan tâm ký tự đó là gì đâu bạn. Còn muốn lấy nó thì bạn cứ get source của trang đó lúc chưa đăng nhập trước, rồi stringregexp tách lấy đoạn token đó ra, nó nằm ở đây này: :p

    [​IMG]
     
    kamsamita1 and langtudoncoi like this.
  11. emga9xkc

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

    Tham gia ngày:
    7/3/16
    Bài viết:
    232
    Đã được thích:
    205
    bản cập nhật ngày 24 quá hay, cảm ơn bác @Huân Hoàng
     
    kamsamita1 thích bài này.
  12. langtudoncoi

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

    Tham gia ngày:
    24/10/16
    Bài viết:
    3
    Đã được thích:
    3
    Cảm ơn bác Huân Hoàng. e bỏ qua kí tự đó và get ok rồi. một lần nữa tks vì bài viết bổ ích của bác
     
    kamsamita1 thích bài này.
  13. langtudoncoi

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

    Tham gia ngày:
    24/10/16
    Bài viết:
    3
    Đã được thích:
    3
    Bác Huân hoàng ơi cho e hỏi tí. Bác có biết cái thông số "Co-id=" đó ở đâu ra không vậy, mỗi lần Post là có 1 dãy số khác nhau mà e tìm cookie thì thấy không liên quan.hic
    [​IMG]
     
    kamsamita1 thích bài này.
  14. emga9xkc

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

    Tham gia ngày:
    7/3/16
    Bài viết:
    232
    Đã được thích:
    205
    b tìm trong source trang web nhé
     
    kamsamita1 thích bài này.
  15. duc

    duc Thành viên
    • 8/11

    Tham gia ngày:
    28/2/16
    Bài viết:
    38
    Đã được thích:
    23
    thím làm 1 bài code về viết code hiện mã capcha lên gui đi :D , cần lắm lun á :v
     
    kamsamita1 thích bài này.
  16. 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
    @duc Tải ở #1 "Một vài source Ví dụ", trong đó có 3 cái ví dụ về captcha rồi đấy :D
     
    kamsamita1 thích bài này.
  17. KogoroMori

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

    Tham gia ngày:
    20/10/16
    Bài viết:
    4
    Đã được thích:
    4
    Xin hỏi anh em,
    Khi mình chạy thử đoạn code lấy source của zing thì bị lỗi sau

    [​IMG]

    khi chạy đoạn lấy source của vnexpress thì vẫn được. Mình cẩn chỉnh sửa chỗ nào để lấy để lấy đợc source của zing nhỉ? Cảm ơn!
     
    Chỉnh sửa cuối: 3/11/16
    kamsamita1 thích bài này.
  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
    À, bị lỗi chưa giải nén gzip rồi, thật ra thì bản _HttpRequest cũ mình có để mà qua bản mới mình bỏ rồi, tưởng là sẽ không dính nữa ai dè vẫn dính. Để mai mình sửa udf lại rồi đăng :|:|
     
    kamsamita1 thích bài này.
  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
    Đã update UDF + bài viết :D:D:D
     
    kamsamita1 and PMHCT like this.
  20. KogoroMori

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

    Tham gia ngày:
    20/10/16
    Bài viết:
    4
    Đã được thích:
    4
    Cảm ơn ban, ổn rồi đấy :D.
     
    kamsamita1 thích bài này.

Chia sẻ trang này

Đang tải...