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ỏi đáp Em cần giúp đỡ _HttpRequest trang cafef.vn

Thảo luận trong 'Thảo luận chung - Hỏi đáp' bắt đầu bởi Nguyễn Thành Phát, 29/6/18.

  1. Nguyễn Thành Phát

    Nguyễn Thành Phát Thành viên mới
    • 3/6

    Tham gia ngày:
    29/10/17
    Bài viết:
    18
    Đã được thích:
    5
    Chào mọi người !
    Tình hình là em muốn cho nó tự nhập mã vào trang cafef.vn theo thứ tự này:

    Bước 1: vào trang cafef.vn
    [​IMG]
    Bước 2: nhập dữ liệu muốn tra vào ô tìm kiếm rồi nhấn tìm kiếm
    [​IMG]
    Cuối cùng lấy link trang đã trả về
    [​IMG]
    Mình tìm mãi nhưng không thấy api của web này nên mình đã định làm bằng httprequest. Tuy nhiên cái web này nó có cơ chế gì mà mình không thể get đc link! :(( mong mọi người giúp đỡ ạ
    Cảm ơn mọi người đã đọc :D
     
    Chỉnh sửa cuối: 29/6/18
  2. NgocNam

    NgocNam Thành viên
    • 8/11

    Tham gia ngày:
    17/11/17
    Bài viết:
    45
    Đã được thích:
    5
    Mình là một thành viên vãn lai ở cái diễn đàn này, được chỉ bảo nhiều từ mấy "cao thủ" trên đây. Chưa có đóng góp gì cả, nhưng cá nhân mình ghét những bài kiểu thế này.

    1 là nếu bạn không biết code thì bạn vào hẵn mục thuê code để thuê người ta code

    2 là nếu bạn muốn học hỏi, tự code cho riêng mình thì đầu tiên bạn nên học cơ bản, làm theo các ví dụ của các bạn khác, sau đó từ từ áp dụng cho trường hợp của bản thân. Trong quá trình làm cho bản thân sẽ có vướng mắc riêng biệt, hãy đưa code bạn lên, nói bạn đã làm gì, làm thế nào, mà nó vẫn chưa ra kết quả, nhất định bạn sẽ nhận đc hỗ trợ của các bạn trên đây. Đằng này bạn chưa đưa ra một dòng code nào chính tay bạn làm cả, bạn chỉ đề ra mong muốn của bản thân, trông chờ một ai đó làm cho bạn rồi bạn bưng về dùng thôi.

    Xin lỗi anh em trên diễn đàn vì ý kiến này của mình, nhưng mình thấy gai mắt nên ko thể ko lên tiếng.

    Nếu quản trị diễn đàn thấy mình cư xử ko đúng có thể xóa bài này của mình. Tuyệt nhiên mình ko phản đối gì.

    Cuối cùng mong anh em vào học tập và có tinh thần tự học, tự làm của một coder thực thụ.
    Mong diễn đàn ngày một lớn mạnh.
     
    DuyMinh thích bài này.
  3. 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
    Nói thật thì cái _HTTPRequest đã là một cái UDF ăn sẵn dâng tới miệng rồi, chứ nghiên cứu WinHTTP thì có mà ngập mặt, thú thật thì t chưa thấy cái request nào dễ hơn cái vấn đề của thớt cả =]]
     
    NgocNam thích bài này.
  4. Nguyễn Thành Phát

    Nguyễn Thành Phát Thành viên mới
    • 3/6

    Tham gia ngày:
    29/10/17
    Bài viết:
    18
    Đã được thích:
    5
    Do mình là thành viên mới nên mình không biết là bạn và những người trong group ghét những bài như thế này :(( Cho mình xin lỗi bạn nhé nhưng mình không thể get được request theo cơ chế của trang web này như những trang web khác thế nên mình mới nhờ các bạn trên group chứ không phải là mình không thèm code rồi bắt các bạn code để mình hưởng thụ thành quả! Mình rất buồn khi bị các bạn hiểu sai mình! :oops:Dù sao mình cũng cảm ơn bạn đã góp ý chân thành :D
     
  5. Nguyễn Thành Phát

    Nguyễn Thành Phát Thành viên mới
    • 3/6

    Tham gia ngày:
    29/10/17
    Bài viết:
    18
    Đã được thích:
    5
    Bạn có thể chỉ mình được không? Mình request nãy giờ nó không ra đc url :(( mong bạn giúp đỡ! web này nó theo cơ chế gì đó khác với mấy web kia! mong bạn giúp đỡ
     
  6. NgocNam

    NgocNam Thành viên
    • 8/11

    Tham gia ngày:
    17/11/17
    Bài viết:
    45
    Đã được thích:
    5
    Vậy bạn hãy quăng code của bạn lên đây, bạn code được tới đâu rồi để mọi người còn chỉ cho bạn cái chỗ bạn làm sai chứ
     
  7. Nguyễn Thành Phát

    Nguyễn Thành Phát Thành viên mới
    • 3/6

    Tham gia ngày:
    29/10/17
    Bài viết:
    18
    Đã được thích:
    5
    Bạn hãy đọc kĩ lại bài đăng của mình được không ? Mình đang gặp vấn đề ở phần request ạ ! :(
     
  8. 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
    Trang này không đùa được đâu bác ạ, bác kia bó tay cũng đúng đấy, móe nó dùng ajax để load cái search, nãy giờ bắt request không ra đây. Chưa kể trang này nó chia request ra làm nhiều phần rồi ghép lại thành 1 trang chính... Mà thực ra vẫn chưa hiểu bác kia muốn gì lắm... :)) gì nếu search theo keyword thì sẽ ra nhiều kết quả??? Vậy phải hiển thị kết quả muốn chọn lên GUI à?
     
    Nguyễn Thành Phát thích bài này.
  9. Nguyễn Thành Phát

    Nguyễn Thành Phát Thành viên mới
    • 3/6

    Tham gia ngày:
    29/10/17
    Bài viết:
    18
    Đã được thích:
    5
    Cảm ơn bác đã hiểu cho mình!
     
  10. 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ế túm cái váy lại mà bác chủ thớt muốn sao? Cái search trên web đó không thể search nếu chỉ bấm keyword? Bác nói chung chung quá bó tay, còn result thì nó load qua ajax nên chưa biết cách lấy các link result khi search theo keyword nếu là ở trên web =]]
     
  11. Nguyễn Thành Phát

    Nguyễn Thành Phát Thành viên mới
    • 3/6

    Tham gia ngày:
    29/10/17
    Bài viết:
    18
    Đã được thích:
    5
    Sau một hồi mày mò thì mình cũng đã mò ra cách bác ạ :V
    Mình cho request bằng google rồi lấy kết quả đầu tiên là ok :V[​IMG]
    [​IMG]
     
  12. 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
    Đấy, rõ là có cái mã cổ phiếu dựa vào, bác cứ đưa như tit đố ai mò ra._.
     
    Nguyễn Thành Phát thích bài này.
  13. Nguyễn Thành Phát

    Nguyễn Thành Phát Thành viên mới
    • 3/6

    Tham gia ngày:
    29/10/17
    Bài viết:
    18
    Đã được thích:
    5
    à hí hí :V Sorry bác :D
     
  14. 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
    Để tối mai làm về coi sao, nếu đã có đích search thì chắc cũng làm được thôi, nãy giờ cứ search cái keyword vnm bực voãi =]]
     
  15. Nguyễn Thành Phát

    Nguyễn Thành Phát Thành viên mới
    • 3/6

    Tham gia ngày:
    29/10/17
    Bài viết:
    18
    Đã được thích:
    5
    Bác có facebook không? Kết bạn với mình nhé :D
    Link: https://www.facebook.com/phatjk
     
  16. 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
  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
    Làm như cách thým @emga9xkc là ổn.

    Ngoài ra có thể chuyển từ code js của trang này (hình dưới, link: http://cafefcdn.com/web_js/jshome.min.20180628v1.js) sang code AutoIt để lấy link toàn bộ các sàn, sau đó kết hợp với hàm _ArrayFindAll để tìm URL sàn tương ứng.

    [​IMG]

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

    $aData = _cafef_kby()
    _ArrayDisplay($aData, 'Array tổng hợp các mã và url trang')

    $PhamViSearch = 1
    ; Nếu $PhamViSearch = 0 thì tìm khớp đúng từ khoá, ví dụ "vnm" thì ra chỉ mỗi kết quả có vnm
    ; Nếu $PhamViSearch = 1 thì tìm khớp 1 phần từ khoá, ví dụ "vnm" thì ra: vnm, vnmid, vnmetf...
    $aSearch = _ArrayFindAll($aData, 'vnm', 0, 0, 0, $PhamViSearch) ; tìm kiếm từ khoá "vnm"
    _ArrayDisplay($aSearch, 'vị trí các phần tử $aData kiếm được từ khoá vnm')

    For $i = 0 To UBound($aSearch) - 1 ;Test kết quả
        MsgBox(4096, 'Vị trí ' & $aSearch[$i], $aData[$aSearch[$i]][0] & @CRLF & $aData[$aSearch[$i]][1] & @CRLF & $aData[$aSearch[$i]][2])
    Next

    Func _cafef_kby()
        $Data = _HttpRequest(2, 'http://e.cafef.vn/kby.ashx')
        $aData = StringRegExp($Data, ',\s?c:\s?"\s?(.*?)",\s?m:\s?"\s?(.*?)",\s?o:\s?"\s?(.*?)",\s?san:\s?(\d)', 3)
        Local $uBound = UBound($aData), $aData2[$uBound / 4][3], $Counter = 0
        For $i = 0 To $uBound - 1 Step 4
            $aData2[$Counter][0] = $aData[$i]
            $aData2[$Counter][1] = ($aData[$i + 1] = "'' ('')" ? '' : $aData[$i + 1])
            Switch $aData[$i + 3]
                Case 8
                    $san = 'otc'
                Case 2
                    $san = 'hastc'
                Case 9
                    $san = 'upcom'
                Case Else
                    $san = 'hose'
            EndSwitch
            Switch $aData[$i]
                Case 'VNINDEX', 'HNX-INDEX', 'UPCOM-INDEX'
                    $aData2[$Counter][2] = 'http://s.cafef.vn/Lich-su-giao-dich-Symbol-' & $aData[$i] & '/Trang-1-0-tab-1.chn'
                Case Else
                    Switch $aData[$i + 2]
                        Case ''

                        Case "'' ('')"
                            Switch $aData[$i + 3]
                                Case 8, 9
                                    $aData2[$Counter][2] = 'http://s.cafef.vn/' & $san & '/' & StringReplace($aData[$i], ' ', '%20') & '-.chn'
                                Case 1, 2
                                    $aData2[$Counter][2] = 'http://s.cafef.vn/Lich-su-giao-dich-' & $aData[$i] & '-1.chn'
                            EndSwitch
                        Case Else
                            $aData[$i + 2] = StringRegExpReplace($aData[$i + 2], '\h+\([^\)]+\)\h*?$', '')
                            $aData[$i + 2] = StringRegExpReplace($aData[$i + 2], '[^\w\s]', '')
                            $aData[$i + 2] = StringRegExpReplace($aData[$i + 2], '\s+', '-')
                            $aData2[$Counter][2] = 'http://s.cafef.vn/' & $san & '/' & $aData2[$Counter][0] & '-' & StringLower($aData[$i + 2]) & '.chn'
                    EndSwitch
            EndSwitch
            $Counter += 1
        Next
        Return $aData2
    EndFunc
    [​IMG]
     
    Nguyễn Thành Phát thích bài này.
  18. Nguyễn Thành Phát

    Nguyễn Thành Phát Thành viên mới
    • 3/6

    Tham gia ngày:
    29/10/17
    Bài viết:
    18
    Đã được thích:
    5
    emga9xkc thích bài này.
  19. Nguyễn Thành Phát

    Nguyễn Thành Phát Thành viên mới
    • 3/6

    Tham gia ngày:
    29/10/17
    Bài viết:
    18
    Đã được thích:
    5
    Bài viết trả lời chất lượng quá bác ạ! Nhờ có bác mà em có thêm cơ hội để học hỏi code rồi :D Gửi bác lời cảm ơn chân thành nhé ahihi :D
     
  20. 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
    @Huân Hoàng bác vẫn pro như xưa ^^
     

Chia sẻ trang này

Đang tải...