Selenium บทเรียนการใช้งาน VBA ใน Excel (Chrome Web Screen)ping)

⚡ สรุปอย่างชาญฉลาด

Selenium VBA ใน Excel ช่วยทำให้กระบวนการต่างๆ เป็นไปโดยอัตโนมัติ Google Chrome เพื่อดึงข้อมูลจากหน้าเว็บ HTML โดยใช้ Selenium ไลบรารีประเภทและเมธอดของ WebDriver เพื่อเปิดไซต์ ค้นหาองค์ประกอบตารางตามคลาสและแท็ก และเขียนผลลัพธ์ลงในเซลล์ของเวิร์กชีต

  • 🧰 Selenium เว็บไดร์เวอร์: VBA ใช้ Selenium ไลบรารีประเภทเพื่อขับเคลื่อน Google Chrome เพื่อการขูดขีดping.
  • 📚 ไลบรารีประเภท: การขอ Selenium ต้องอ้างอิงไลบรารีประเภทก่อนจึงจะสามารถประกาศอ็อบเจ็กต์ WebDriver ได้
  • 🚀 เริ่มต้นและรับ: เมธอด Start จะเปิดเบราว์เซอร์ Chrome และเมธอด Get จะโหลดเว็บไซต์เป้าหมาย URL.
  • 🔎 ตัวระบุตำแหน่งองค์ประกอบ: ฟังก์ชัน FindElementByClass และ FindElementsByTag ใช้สำหรับค้นหาหัวตารางและเซลล์ข้อมูล
  • 📊 เขียนข้อมูลลงในเซลล์: ลูป For Each ที่ซ้อนกันจะเขียนค่าส่วนหัวและค่าแถวลงในเซลล์ของเวิร์กชีต
  • 🤖 ความช่วยเหลือจาก AI: ผู้ช่วยนักบิน AI ช่วยในการเขียนโปรแกรม แก้ไขข้อผิดพลาด และบำรุงรักษา Selenium สคริปต์ VBA สำหรับเว็บไซต์ที่มีการเปลี่ยนแปลง

Selenium บทเรียน VBA ใน Excel

Data Scra คืออะไรping การใช้ Selenium?

Selenium เป็นเครื่องมืออัตโนมัติที่ช่วยอำนวยความสะดวกในการขูดข้อมูลping ข้อมูลจากหน้าเว็บ HTML โดยทำการดึงข้อมูลจากเว็บ (web scraping)ping สีสดสวย Google Chromeในโปรแกรม Excel นั้น Selenium ไลบรารีประเภทข้อมูลช่วยให้ VBA สามารถใช้งานกับเบราว์เซอร์จริงแทนที่จะใช้เอนจิ้น Internet Explorer ที่ล้าสมัย

วิธีเตรียมมาโคร Excel ก่อนการดึงข้อมูลping การใช้ Selenium

มีข้อกำหนดเบื้องต้นบางประการที่ต้องดำเนินการกับไฟล์มาโคร Excel ก่อนเริ่มการดึงข้อมูลping กระบวนการ

ข้อกำหนดเบื้องต้นมีดังต่อไปนี้:

ขั้นตอน 1) เปิดมาโครที่สร้างจากไฟล์ Excel แล้วเข้าถึงตัวเลือกสำหรับนักพัฒนาซอฟต์แวร์ของ Excel

เตรียมมาโคร Excel ก่อนทำการขูดข้อมูลping  ด้วย Selenium

ขั้นตอน 2) เลือกตัวเลือก Visual Basic ในแถบเครื่องมือ Developer

เตรียมมาโคร Excel ก่อนทำการขูดข้อมูลping  ด้วย Selenium

ขั้นตอน 3) ใส่โมดูลใหม่

เตรียมมาโคร Excel ก่อนทำการขูดข้อมูลping  ด้วย Selenium

ขั้นตอน 4) เริ่มต้นใช้งานซับรูทีนใหม่และตั้งชื่อว่า test2

Sub test2()
End Sub

ผลลัพธ์ในโมดูลจะเป็นดังนี้:

เตรียมมาโคร Excel ก่อนทำการขูดข้อมูลping  ด้วย Selenium

ขั้นตอน 5) เข้าถึงตัวเลือก "การอ้างอิง" ภายใต้แท็บ "เครื่องมือ" และอ้างอิงถึง Selenium ไลบรารีประเภท (Type Library) ไลบรารีนี้ช่วยเปิดกว้าง Google Chrome และช่วยอำนวยความสะดวกในการเขียนสคริปต์มาโคร

อ้างอิง Selenium ไลบรารีประเภทใน Excel VBA

ตอนนี้ไฟล์ Excel พร้อมที่จะใช้งานร่วมกับเบราว์เซอร์แล้ว ขั้นตอนต่อไปคือการใส่สคริปต์มาโครที่จะช่วยอำนวยความสะดวกในการดึงข้อมูลping ในรูปแบบ HTML

วิธีการเปิด Google Chrome การใช้วีบีเอ

ต่อไปนี้คือขั้นตอนในการเปิดใช้งาน Google Chrome โดยใช้ VBA

ขั้นตอน 1) ประกาศและกำหนดค่าเริ่มต้นให้กับตัวแปรในซับรูทีนตามที่แสดงด้านล่าง

Sub test2()
Dim driver As New WebDriver
Dim rowc, cc, columnC As Integer

ขั้นตอน 2) เพื่อเปิด Google Chrome ด้วย Selenium และ VBA เขียน driver.Start “Chrome” แล้วกด F5

ต่อไปนี้จะเป็นโค้ด

Sub test2()
Dim driver As New WebDriver
Dim rowc, cc, columnC As Integer
driver.Start "Chrome"
Application.Wait Now + TimeValue("00:00:20")
End Sub

โมดูลจะมีผลลัพธ์ดังนี้:

จุดเปิด Google Chrome โดยใช้ VBA

วิธีเปิดเว็บไซต์ใน Google Chrome การใช้วีบีเอ

เมื่อคุณสามารถเข้าถึงได้ Google Chrome ขั้นตอนต่อไปคือการเข้าถึงเว็บไซต์โดยใช้ VBA ซึ่งทำได้โดยใช้ฟังก์ชัน Get URL ถูกส่งผ่านโดยใช้เครื่องหมายอัญประกาศคู่

โมดูลจะมีลักษณะดังนี้:

เปิดเว็บไซต์ใน Google Chrome โดยใช้ VBA

กด F5 เพื่อเรียกใช้มาโคร เว็บเพจต่อไปนี้จะเปิดขึ้น Google Chrome ตามที่ปรากฏ.

Sub test2()
Dim driver As New WebDriver
Dim rowc, cc, columnC As Integer
driver.Start "Chrome"
driver.Get "https://demo.guru99.com/test/web-table-element.php"
Application.Wait Now + TimeValue("00:00:20")
End Sub

เปิดเว็บไซต์ใน Google Chrome โดยใช้ VBA

ตอนนี้มาโคร Excel พร้อมที่จะทำการขูดข้อมูลแล้วping งานต่างๆ ขั้นตอนต่อไปแสดงให้เห็นว่าสามารถแสดงข้อมูลได้อย่างไรtracted โดยการประยุกต์ใช้ Selenium และ VBA

วิธีการดึงข้อมูลจากเว็บไซต์โดยใช้ VBA

สมมติว่านักลงทุนรายวันต้องการเข้าถึงข้อมูลจากเว็บไซต์ทุกวัน ทุกครั้งที่นักลงทุนคลิกปุ่ม ระบบควรดึงข้อมูลตลาดเข้าสู่ Excel โดยอัตโนมัติ

จากเว็บไซต์ข้างต้น จำเป็นต้องตรวจสอบองค์ประกอบและสังเกตโครงสร้างของข้อมูล เข้าถึงซอร์สโค้ด HTML ด้านล่างโดยกด Ctrl + Shift + ฉัน.

<table class="datatable">
<thead>
<tr>
<th>Company</th>
<th>Group</th>
<th>Pre Close (Rs)</th>
<th>Current Price (Rs)</th>
<th>% Change</th>
</tr>

ดังที่คุณเห็น ข้อมูลถูกจัดโครงสร้างในรูปแบบตาราง HTML เดียว ดังนั้น เพื่อดึงข้อมูลทั้งหมดจากตาราง HTML คุณต้องออกแบบมาโครที่ดึงข้อมูลส่วนหัวและข้อมูลที่เกี่ยวข้องกับตารางนั้น ทำตามขั้นตอนด้านล่างนี้

ขั้นตอน 1) สร้างลูป For ที่วนซ้ำข้อมูลส่วนหัวของ HTML ในรูปแบบของคอลเลกชัน Selenium ไดรเวอร์จะค้นหาข้อมูลส่วนหัวโดยใช้วิธี FindElementByClass() และ FindElementByTag() ดังที่แสดงไว้

Sub test2()
Dim driver As New WebDriver
Dim rowc, cc, columnC As Integer
rowc = 2
Application.ScreenUpdating = False
driver.Start "chrome"
driver.Get "https://demo.guru99.com/test/web-table-element.php"
For Each th In driver.FindElementByClass("dataTable").FindElementByTag("thead").FindElementsByTag("tr")
cc = 1
For Each t In th.FindElementsByTag("th")
Sheet2.Cells(1, cc).Value = t.Text
cc = cc + 1
Next t
Next th

ขั้นตอน 2) ถัดไป Selenium ไดรเวอร์ค้นหาข้อมูลในตารางโดยใช้วิธีการที่คล้ายกัน เขียนโค้ดต่อไปนี้:

Sub test2()
Dim driver As New WebDriver
Dim rowc, cc, columnC As Integer
rowc = 2
Application.ScreenUpdating = False
driver.Start "chrome"
driver.Get "https://demo.guru99.com/test/web-table-element.php"
For Each th In driver.FindElementByClass("dataTable").FindElementByTag("thead").FindElementsByTag("tr")
cc = 1
For Each t In th.FindElementsByTag("th")
Sheet2.Cells(1, cc).Value = t.Text
cc = cc + 1
Next t
Next th
For Each tr In driver.FindElementByClass("dataTable").FindElementByTag("tbody").FindElementsByTag("tr")
columnC = 1
For Each td In tr.FindElementsByTag("td")
Sheet2.Cells(rowc, columnC).Value = td.Text
columnC = columnC + 1
Next td
rowc = rowc + 1
Next tr
Application.Wait Now + TimeValue("00:00:20")
End Sub

สามารถเริ่มต้นใช้งาน Excel ได้โดยใช้แอตทริบิวต์ Range หรือแอตทริบิวต์ Cells ของชีต เพื่อลดความซับซ้อนของสคริปต์ VBA ข้อมูลคอลเลกชันจะถูกเริ่มต้นใช้งานในแอตทริบิวต์ Cells ของชีตที่ 2 ในเวิร์กบุ๊ก แอตทริบิวต์ Text ช่วยในการวางข้อความไว้ภายใต้แท็ก HTML

Sub test2()
Dim driver As New WebDriver
Dim rowc, cc, columnC As Integer
rowc = 2
Application.ScreenUpdating = False
driver.Start "chrome"
driver.Get "https://demo.guru99.com/test/web-table-element.php"
For Each th In driver.FindElementByClass("dataTable").FindElementByTag("thead").FindElementsByTag("tr")
cc = 1
For Each t In th.FindElementsByTag("th")
Sheet2.Cells(1, cc).Value = t.Text
cc = cc + 1
Next t
Next th
For Each tr In driver.FindElementByClass("dataTable").FindElementByTag("tbody").FindElementsByTag("tr")
columnC = 1
For Each td In tr.FindElementsByTag("td")
Sheet2.Cells(rowc, columnC).Value = td.Text
columnC = columnC + 1
Next td
rowc = rowc + 1
Next tr
Application.Wait Now + TimeValue("00:00:20")
End Sub

โมดูล VBA จะมีลักษณะดังนี้:

ขูดข้อมูลจากเว็บไซต์โดยใช้ VBA

ขั้นตอน 3) เมื่อสคริปต์มาโครพร้อมแล้ว ให้กำหนดซับรูทีนให้กับปุ่มใน Excel แล้วออกจากโมดูล VBA ตั้งชื่อปุ่มว่า Refresh หรือชื่ออื่นๆ ที่เหมาะสม ในตัวอย่างนี้ ปุ่มมีชื่อว่า Refresh

ขูดข้อมูลจากเว็บไซต์โดยใช้ VBA

ขั้นตอน 4) กดปุ่มรีเฟรชเพื่อดูผลลัพธ์ด้านล่าง

ขูดข้อมูลจากเว็บไซต์โดยใช้ VBA

ขั้นตอน 5) เปรียบเทียบผลลัพธ์ใน Excel กับผลลัพธ์ใน Google Chrome.

ขูดข้อมูลจากเว็บไซต์โดยใช้ VBA

คำถามที่พบบ่อย

โปรแกรม Excel ต้องการ... Selenium ไลบรารีประเภท ติดตั้งผ่าน Seleniumไลบรารีพื้นฐานนี้ สามารถอ้างอิงได้ในตัวแก้ไข VBA ภายใต้เมนู เครื่องมือ > การอ้างอิง ไลบรารีนี้มีอ็อบเจ็กต์ WebDriver และเมธอดต่างๆ เช่น Start, Get และ FindElementByClass ซึ่งใช้ในการทำงานอัตโนมัติของเบราว์เซอร์

Selenium VBA สามารถขับเคลื่อนได้ Google Chrome, มอซิลล่า Firefox, Microsoft Edgeและ Internet Explorer โดย Chrome เป็นตัวเลือกที่นิยมใช้มากที่สุด เบราว์เซอร์แต่ละตัวต้องการ WebDriver ที่เหมาะสม และโค้ด VBA เดียวกันสามารถใช้สลับระหว่างเบราว์เซอร์ต่างๆ ได้โดยมีการเปลี่ยนแปลงเพียงเล็กน้อย

การขอ วิธีอินเทอร์เน็ตเอ็กซ์พลอเรอร์ ใช้ไลบรารี HTML Object Library และใช้งานได้เฉพาะกับ IE ซึ่งเป็นเบราว์เซอร์ที่เลิกใช้งานแล้ว Selenium รองรับเบราว์เซอร์สมัยใหม่ เช่น Chrome และให้การสนับสนุนหลายเบราว์เซอร์ รวมถึงการระบุตำแหน่งองค์ประกอบที่เชื่อถือได้มากขึ้น

ใช่แล้ว นักบินผู้ช่วย AI สามารถสร้าง... Selenium AI สามารถดึงโค้ด VBA จากคำอธิบาย แนะนำตัวระบุตำแหน่งขององค์ประกอบ และช่วยแก้ไขข้อผิดพลาด เมื่อเว็บไซต์มีการเปลี่ยนแปลง AI สามารถเสนอตัวเลือกที่อัปเดตแล้ว ช่วยลดความพยายามในการบำรุงรักษาโค้ดด้วยตนเองping มาโคร

AI เพิ่มการตรวจจับองค์ประกอบอัจฉริยะ คำสั่งภาษาธรรมชาติ และตัวระบุตำแหน่งที่แก้ไขตัวเองได้ให้กับการทำงานอัตโนมัติของเบราว์เซอร์ คุณสมบัติการเรียนรู้ของเครื่องเหล่านี้ช่วยให้เครื่องมือปรับตัวเข้ากับการเปลี่ยนแปลงเค้าโครงได้โดยอัตโนมัติ ทำให้การดึงข้อมูลทำได้ง่ายขึ้นping และการทดสอบมีความยืดหยุ่นมากกว่าสคริปต์ที่เขียนตายตัว

สรุปโพสต์นี้ด้วย: