Visual Basic for Applications:
การดาวน์โหลดหน้าเว็บ
วิธีการ:
เพื่อดาวน์โหลดเว็บเพจใน VBA คุณสามารถใช้ห้องสมุด Microsoft XML, v6.0 (MSXML6) ซึ่งช่วยในการร้องขอ HTTP จากเซิร์ฟเวอร์ ก่อนที่จะเริ่มเขียนโค้ด ตรวจสอบว่าคุณได้เปิดใช้งานการอ้างอิงนี้ในตัวแก้ไข VBA ของคุณโดยไปที่ เครื่องมือ
-> การอ้างอิง
และตรวจสอบ Microsoft XML, v6.0
นี่คือตัวอย่างง่าย ๆ ของวิธีการดาวน์โหลดเนื้อหา HTML ของเว็บเพจ:
Sub DownloadWebPage()
Dim request As Object
Dim url As String
Dim response As String
' เริ่มต้นของออบเจกต์ XML HTTP request
Set request = CreateObject("MSXML2.XMLHTTP")
url = "http://www.example.com"
' เปิดการร้องขอแบบซิงโครนัส
request.Open "GET", url, False
' ส่งการร้องขอไปยังเซิร์ฟเวอร์
request.send
' รับข้อความตอบกลับ
response = request.responseText
' แสดงผลข้อความตอบกลับในหน้าต่างทันที (เพื่อวัตถุประสงค์ในการดีบัก)
Debug.Print response
' ทำความสะอาด
Set request = Nothing
End Sub
การรัน Subroutine นี้จะพิมพ์ HTML ของเว็บไซต์ http://www.example.com
ออกมาที่ Immediate Window ในตัวแก้ไข VBA โปรดสังเกตว่าพารามิเตอร์ False
ในเมธอด Open
ทำให้การร้องขอเป็นแบบซิงโครนัสหมายความว่าโค้ดจะรอจนกระทั่งเว็บเพจถูกดาวน์โหลดก่อนที่จะเคลื่อนไปยังบรรทัดถัดไป
การทำความเข้าใจลึกซึ้ง
เทคนิคที่แสดงอยู่นี้ขึ้นอยู่กับ MSXML, การดำเนินการของ Microsoft ตามมาตรฐาน XML HTTP Request ซึ่งมักจะใช้สำหรับการร้องขอ AJAX ในการพัฒนาเว็บ ส่วนประกอบนี้เป็นส่วนหนึ่งของเทคโนโลยีสแต็คของ Microsoft มาเป็นระยะเวลานานทำให้เป็นทางเลือกที่แข็งแกร่งสำหรับการร้องขอเครือข่ายใน VBA
อย่างไรก็ตาม การพึ่งพา MSXML และ VBA สำหรับการดาวน์โหลดและการแยกวิเคราะห์เนื้อหาเว็บอาจเป็นเรื่องที่จำกัด โดยเฉพาะกับแอปพลิเคชันเว็บสมัยใหม่ที่ใช้ JavaScript อย่างหนักเพื่อการเรนเดอร์เนื้อหาแบบไดนามิก ข้อจำกัดเหล่านี้อาจทำให้ภาษาอื่นหรือเครื่องมือเช่น Python พร้อมกับไลบรารีเช่น BeautifulSoup หรือ Selenium เหมาะสมกว่าสำหรับงานดึงข้อมูลเว็บ เนื่องจากมีความสามารถในการทำงาน JavaScript และจัดการกับการโต้ตอบเว็บไซท์ที่ซับซ้อนได้
ถึงอย่างไรก็ตาม สำหรับงานง่าย ๆ ที่เกี่ยวข้องกับการเรียกเนื้อหา HTML ที่ตรงไปตรงมาหรือเมื่อทำงานภายในขอบเขตของแอปพลิเคชั่น Office VBA ยังคงเป็นเครื่องมือที่ปฏิบัติได้จริง การรวมกันในชุด Office ช่วยให้สามารถจัดการเอกสารได้โดยตรงตามเนื้อหาเว็บ โดยมีข้อได้เปรียบเฉพาะทางสำหรับกรณีการใช้งานบางอย่าง