ใน Python Selenium สามารถดึงซอร์สโค้ด HTML ของหน้าเว็บได้ 2 วิธีหลัก
วิธีที่ 1: ใช้ page_source
html = driver.page_source
วิธีที่ 2: ใช้ JavaScript Executor
html = driver.execute_script("return document.body.innerHTML;")
ตัวอย่างโค้ดสมบูรณ์ (วิธีที่ 1)
from selenium import webdriver
driver = webdriver.Chrome(executable_path="C:\\chromedriver.exe")
driver.implicitly_wait(0.5)
driver.get("https://www.example.com")
# ดึง HTML ด้วย page_source
html = driver.page_source
print(html)
driver.quit()
ตัวอย่างโค้ดสมบูรณ์ (วิธีที่ 2)
from selenium import webdriver
driver = webdriver.Chrome(executable_path="C:\\chromedriver.exe")
driver.implicitly_wait(0.5)
driver.get("https://www.example.com")
# ดึง HTML ด้วย JavaScript
html = driver.execute_script("return document.body.innerHTML;")
print(html)
driver.quit()
ความแตกต่างระหว่าง 2 วิธี
| คุณสมบัติ | page_source | execute_script (innerHTML) |
|---|---|---|
| เนื้อหาที่ได้ | HTML ต้นฉบับที่โหลดมา (รวม <head>, <html>) | HTML ปัจจุบันใน DOM (หลัง JavaScript ทำงาน) |
| รองรับ Dynamic Content | ไม่รองรับ (เป็นต้นฉบับจาก Server) | รองรับ (ได้ HTML หลัง render แล้ว) |
| ประสิทธิภาพ | เร็วกว่า | ช้ากว่าเล็กน้อย |
คำแนะนำ
- ใช้
page_sourceสำหรับดู HTML ต้นฉบับ/ดิบ - ใช้
execute_scriptเมื่อต้องการ HTML หลังจาก JavaScript แทรกสร้าง/เปลี่ยนแปลง DOM - ใน Selenium 4 แนะนำใช้
driver.page_sourceโดยตรง ไม่ต้องระบุ executable_path