Lấy về mã nguồn html của một trang web bằng XMLHTTP

Euler

Mod
Thành viên BQT
Trên diễn đàn, chúng ta đã có một chủ đề về mở một URL bằng Internet Explorer cũng như thao tác với Internet Explorer thông qua VBA.

Tuy nhiên, nếu chúng ta mở một trang có nhiều hình ảnh, thì sẽ mất rất nhiều thời gian chờ load trang. Cách mở trang như vậy có ưu điểm là sẽ lấy đầy đủ thông tin, nhưng trong trường hợp nếu chúng ta chỉ cần quan tâm tới mã HTML của trang đó, thì tôi muốn giới thiệu mọi người một cách đơn giản sử dụng Object XMLHTTP.


Để hiểu tường tận XMLHTTP là gì, mọi người hãy thử tìm kiếm qua Internet nhé.

Đoạn code dưới đây sẽ lưu trang tuhocvba.net thành C:\\sample.htm

Mã:
Sub Sample()

    Dim Http, buf As String

    Set Http = CreateObject("MSXML2.XMLHTTP")

    Http.Open "GET", "https://tuhocvba.net", False

    Http.Send

    buf = StrConv(Http.ResponseBody, vbUnicode)

    Open "C:\sample.htm" For Output As #1

        Print #1, buf

    Close #1

    Set Http = Nothing

End Sub
Tùy thuộc vào phiên bản XMLHTTP mà CreateObject("MSXML2.XMLHTTP") sẽ khác nhau. Tuy nhiên đối với môi trường của tôi, thì thế là đủ rồi. Hoặc là đoạn code này StrConv(Http.ResponseBody, vbUnicode), các bạn cũng có thể thay đổi.

Nguồn:
 
Sửa lần cuối:
Top