Visual Basic for Applications:
การวิเคราะห์ HTML
วิธีทำ:
ใน VBA คุณสามารถแยกข้อมูล HTML โดยใช้ Microsoft HTML Object Library
เพิ่มการอ้างอิงไปยังไลบรารีนี้ในตัวแก้ไข VBA ของคุณโดยไปที่ Tools > References และเลือก Microsoft HTML Object Library
การทำเช่นนี้จะให้คุณสามารถเข้าถึงคลาสสำหรับการนำทางและการจัดการเอกสาร HTML
นี่คือตัวอย่างง่ายๆ ที่แสดงวิธีการโหลดเอกสาร HTML จากไฟล์และสกัดลิงค์ทั้งหมด (การป้ายย่อ):
Sub ParseHTML()
Dim htmlDoc As MSHTML.HTMLDocument
Dim htmlElement As MSHTML.IHTMLElement
Dim htmlElements As MSHTML.IHTMLElementCollection
Dim htmlFile As String
Dim fileContent As String
' โหลดเนื้อหา HTML จากไฟล์
htmlFile = "C:\path\to\your\file.html"
Open htmlFile For Input As #1
fileContent = Input$(LOF(1), 1)
Close #1
' ต้นแบบเอกสาร HTML
Set htmlDoc = New MSHTML.HTMLDocument
htmlDoc.body.innerHTML = fileContent
' ได้รับการป้ายย่อทั้งหมด
Set htmlElements = htmlDoc.getElementsByTagName("a")
' วนลูปผ่านองค์ประกอบป้ายย่อทั้งหมดและพิมพ์แอตทริบิวต์ href
For Each htmlElement In htmlElements
Debug.Print htmlElement.getAttribute("href")
Next htmlElement
End Sub
สคริปต์นี้อ่านเนื้อหาไฟล์ HTML, โหลดลงในออบเจกต์ HTMLDocument
, เรียกดูองค์ประกอบป้ายย่อทั้งหมด (<a>
tags) และจากนั้นวนลูปผ่านพวกมัน พิมพ์แอตทริบิวต์ href
ของแต่ละตัวลงในหน้าต่าง Immediate
ลึกซึ้ง:
ในอดีต การแยกข้อมูล HTML ใน VBA อาจจะดูยุ่งยากเนื่องจากขาดการสนับสนุนโดยตรงสำหรับเทคโนโลยีการเก็บข้อมูลเว็บและการจัดการเอกสารสมัยใหม่ Microsoft HTML Object Library แม้จะมีศักยภาพ เป็นปัจจุบันอาจจะไม่จัดการกับมาตรฐานเว็บสมัยใหม่ได้อย่างราบรื่นเท่ากับเทคโนโลยีใหม่ๆ
สำหรับงานแยกข้อมูล HTML และการเก็บข้อมูลเว็บที่ซับซ้อน โดยทั่วไปจะแนะนำเครื่องมือและภาษาอื่นเช่น Python พร้อมกับไลบรารี เช่น Beautiful Soup หรือ Scrapy เครื่องมือสมัยใหม่เหล่านี้มอบความยืดหยุ่นมากขึ้น ประสิทธิภาพที่ดีกว่า และเข้ากับมาตรฐานเว็บปัจจุบันได้ดีกว่า อย่างไรก็ตาม เมื่อทำงานภายในระบบนิเวศของ Microsoft Office การใช้ VBA กับ Microsoft HTML Object Library ยังคงเป็นทักษะที่มีค่า ช่วยปลดล็อคการจัดการเนื้อหา HTML โดยตรงในวิธีที่ผสานเข้ากับแอปพลิเคชั่นเช่น Excel และ Access ได้อย่างไร้รอยต่อ ให้วิธีการที่ตรงไปตรงมาสำหรับการทำงานที่เกี่ยวข้องกับการจัดการเอกสาร HTML พื้นฐานโดยไม่จำเป็นต้องออกนอกสภาพแวดล้อม VBA ที่คุ้นเคย