Lua:
การวิเคราะห์ HTML
วิธีการ:
Lua ไม่มีไลบรารีที่ใช้สำหรับการแยกส่วน HTML โดยตรง แต่คุณสามารถใช้ไลบรารีของบุคคลที่สาม เช่น LuaHTML
หรือใช้พันธุ์ (bindings) สำหรับ libxml2
ผ่าน LuaXML
วิธีการที่นิยมคือการใช้ไลบรารี lua-gumbo
เพื่อการแยกส่วน HTML ซึ่งมอบความสามารถในการแยกส่วนที่สอดคล้องกับ HTML5 อย่างง่ายดาย
การติดตั้ง lua-gumbo:
ขั้นแรก ตรวจสอบว่า lua-gumbo
ได้ถูกติดตั้ง คุณสามารถติดตั้งได้โดยปกติผ่าน luarocks:
luarocks install lua-gumbo
การแยกส่วนพื้นฐานกับ lua-gumbo:
นี่คือวิธีการแยกส่วนชิ้นส่วน HTML ง่ายๆ และสกัดข้อมูลจากมันโดยใช้ lua-gumbo
:
local gumbo = require "gumbo"
local document = gumbo.parse[[<html><body><p>สวัสดี, โลก!</p></body></html>]]
local p = document:getElementsByTagName("p")[1]
print(p.textContent) -- ผลลัพธ์: สวัสดี, โลก!
ตัวอย่างขั้นสูง - การสกัดลิงก์:
เพื่อสกัดคุณลักษณะ href
จากแท็กของทุก anchor (<a>
elements) ในเอกสาร HTML:
local gumbo = require "gumbo"
local document = gumbo.parse([[
<html>
<head><title>หน้าตัวอย่าง</title></head>
<body>
<a href="http://example.com/1">ลิงก์ 1</a>
<a href="http://example.com/2">ลิงก์ 2</a>
<a href="http://example.com/3">ลิงก์ 3</a>
</body>
</html>
]])
for _, element in ipairs(document.links) do
if element.getAttribute then -- ตรวจสอบว่าเป็น Element และมี attributes
local href = element:getAttribute("href")
if href then print(href) end
end
end
-- ผลลัพธ์ตัวอย่าง:
-- http://example.com/1
-- http://example.com/2
-- http://example.com/3
ชิ้นส่วนของโค้ดนี้จะเดินทางผ่านลิงก์ทั้งหมดในเอกสารและพิมพ์คุณลักษณะ href
ของพวกมัน ความสามารถของไลบรารี lua-gumbo
ในการแยกส่วนและเข้าใจโครงสร้างของเอกสาร HTML ทำให้กระบวนการของการสกัดองค์ประกอบเฉพาะตามแท็กหรือคุณลักษณะของพวกมันง่ายขึ้น