top of page

ใช้ Python ควบคุมการทำงานบนเวปด้วย Selenium

ทำความรู้จักกับ Selenium และเหตุผลว่าทำไมมันเป็นเครื่องมือ "ที่เจ๋งที่สุด" อันนึงของ Python ที่ไม่ว่าใครก็อ่านได้ ใช้เวลา 5 นาทีอ่านจบร้องอ๋อ แน่นอน!


หัวข้อในวันนี้เป็นหัวข้อที่ผมชอบเป็นการส่วนตัวมากๆ เพราะ Selenium เป็นเครื่องมือที่ใช้งานง่าย และใช้ได้ยืดหยุ่นมากที่สุดด้วยความที่มันทำงานกับบราวเซอร์ที่ใช้เข้าเวปไซต์ต่างๆ เช่น Chrome

วันนี้ 5 นาที เขียน Python จะมาเล่าให้ทุกคนฟังว่า Selenium ใช้ทำอะไรได้บ้างในฉบับที่ใครก็อ่านเข้าใจได้ใน 5 นาที

╔═══════════╗ ติดตาม Ultimate Python ติดตาม 5 นาที เขียน Python เป็น และตั้งค่าเห็นก่อน https://web.facebook.com/ultimatepython เข้ากลุ่มเรียนเพื่อรับอัพเดทคอนเทนต์ของเราได้ที่ลิ้งค์กลุ่มด้านล่าง https://web.facebook.com/groups/664940094107034/ ╚═══════════╝


 

เดี๋ยวนี้ไม่ว่าอะไรก็เหมือนจะย้ายมาอยู่บนเวปกันหมด ไม่ว่าจะเป็นโซเชียลมีเดีย แอพต่างๆ จนไปถึงโปรแกรมการทำงานต่างๆ ซึ่งสิ่งที่พวกนี้มีร่วมกัน คือ การทำงานผ่านบราวเซอร์


ซึ่ง Selenium เป็นชุดคำสั่งที่ทำงานร่วมกับ Chrome Driver บราวเซอร์ Chrome ที่ทุกคนรู้จักที่ผ่านการดัดแปลงให้สามารถสั่งคำสั่งต่างๆ ด้วยคำสั่งภาษา Python ได้


ความพิเศษของ Selenium ไม่ได้เกิดจากตัวมันเอง แต่เกิดจากความหลากหลายของเวปไซต์ และความง่ายของการทำงานของเวปไซต์ที่บางครั้งเรามองข้ามไปเพราะมันเป็นเรื่องที่ปกติมาก


ในการทำงานร่วมกับเวปไซต์ต่างๆ เพื่อนๆ เคยสังเกตไหมว่าเราทำอะไรบนเวปไซต์บ้าง? หลายท่านอาจบอกว่า อ่านบทความ เก็บข้อมูล สมัครเรียน แต่หากเรามองลึกลงไปในระดับการกระทำ จริงๆ แล้วเราทำอะไรบนเวปไซต์?


ถ้าดูจริงๆ สิ่งที่เราทำมีอยู่ไม่กี่อย่างเท่านั้น นั่นคือ คลิก พิมพ์ คัดลอกข้อมูล กดปุ่ม แค่นั้นเอง! แต่สิ่งที่ทำให้เวปไซต์น่าสนใจ คือ การเรียบเรียงสิ่งต่างๆ ให้เรามีประสบการณ์ร่วมกับสิ่งเหล่านี้


ดังนั้นความท้าทายของการทำงานกับเวปไซต์ จริงๆ แล้ว ไม่ใช่สิ่งที่เราทำบนเวปไซต์ แต่เป็น "การระบุตำแหน่ง" ว่าที่เราจะคลิก พิมพ์ เนี่ย มันจะต้องทำกับส่วนไหนของ


สำหรับการระบุตำแหน่ง แบบ "xpath" ผมจะขอเล่าใน ep ถัดๆ ไปแยกเป็นหัวข้อของตัวมันเอง เนื่องจากมีรายละเอียดเยอะมากๆ


รายละเอียดของคำสั่งสามารถอ่านต่อได้ในแต่ละภาพในโพสนี้เลย


 

Selenium เป็นชุดคำสั่งภาษา Python ที่ใช้งานร่วมกับ Chrome Driver เป็น Chrome เวอร์ชันที่ดัดแปลงให้สามารถทำงานร่วมกับชุดคำสั่งนี้ได้


เหมือนกับ "Library" อื่นๆ จะต้องมีการ "import" ก่อนใช้งาน และสำหรับ Selenium เราจะต้องดาวน์โหลด Chrome Driver ดังกล่าวมาด้วย


 

เปิด Browser

เปิด Chrome Driver ด้วย Python ด้วยคำสั่ง

webdriver.Chrome( )


คำสั่งจะเปิด Chrome Driver ที่เป็นบราวเซอร์ Chrome ที่ปรับแต่งเพื่อให้สั่งคำสั่งด้วย Python ได้


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





 

คำสั่งใช้เปิดเวป

เปิดเวปไซต์ที่ต้องการด้วยคำสั่ง

.get( )


คำสั่งจะเปิดเวปไซต์ที่เราระบุ (แบบเต็ม) ขึ้นมาในบราวเซอร์ที่เปิดด้วย Python และเก็บข้อมูลเอาไว้





 

ระบุตำแหน่งที่ทำงานด้วยบนเวป

ระบุตำแหน่งที่ต้องการทำงานด้วย

.find_element_by_xpath( )

และการระบุตำแหน่งแบบ xpath


การระบุตำแหน่งเป็นหลักการสำคัญของการทำงานร่วมกับบราวเซอร์ เนื่องจากถ้าหากเรามองจริงๆ แล้วการกระทำที่เราทำบนเวปไซต์ไม่ได้มีเยอะ และเป็นการกระทำง่ายๆ เช่น คลิก พิมพ์


แต่สิ่งที่ท้าทาย คือ การระบุตำแหน่งว่าที่เราจะคลิก อยู่ตรงไหนของหน้าเวป ทีเราจะพิมพ์ คือ ช่องไหนที่เราดูไว้





 
การคลิก

คลิกตำแหน่งที่ระบุด้วยคำสั่ง

.click( )


ใช้สั่งคำสั่งแทนการใช้เมาส์คลิกในตำแหน่งที่ระบุ



 
การพิมพ์ข้อความ

สำหรกับการพิมพ์ลงไปในตำแหน่งที่ระบุด้วยคำสั่ง

.send_keys( )


ใช้สั่งคำสั่งแทนการพิมพ์ข้อความลงไปในตำแหน่งที่ระบุ ซึ่งจะรับค่าเป็น string ก่อนแปลงเป็นการพิมพ์





 

ดึงข้อมูลข้อความ

การดึงข้อมูลจากหน้าเวปมีหลายลักษณะ ใช้งานอ้างอิงจากข้อมูล Tag ที่ต้องการดึง และการระบุ XPath หากข้อมูลที่ต้องการเป็นข้อามูล text เราสามารถใช้ .text() ดึงข้อความเหล่านั้นเป็น string ออกมาได้




 
บทสรุป

สังเกตว่า แค่การคลิก พิมพ์ คัดลอกข้อความก็ครอบคลุมสิ่งส่วนใหญ่ที่เราทำบนเวปไซต์แล้ว


ดังนั้นจะเห็นว่าเราสามารถใช้ความง่ายในการกระทำนี้ ไปใช้งานได้เยอะมากๆ ไม่ว่าจะเพื่อความบันเทิงบนเวป และแอพต่าง หรือการทำงานบนโปรแกรมที่อยู่บนเวปไซต์ต่างๆ


ซึ่งคีย์สำคัญ คือ การระบุตำแหน่งที่เราจะพูดถึงในบทถัดๆ ไปเพื่อไม่ให้แต่ละบททำความเข้าใจยากเกินไป


ติดตาม Ultimate Python ติดตาม 5 นาที เขียน Python เป็น และตั้งค่าเห็นก่อน



 

เรียน Python จาก 0?

เรียน Python แบบนำไปใช้งานได้จริง ให้พร้อมทั้งความรู้ และพื้นฐานสำหรับต่อยอดได้จริง ดูคอร์สเรียนทั้งหมด https://ultimatepython.teachable.com/courses


มาถึงตรงนี้ ถ้าหากท่านใดมีความสนใจอยากศึกษา Python แบบไม่ต้องเสียเวลาลองผิดเอง ให้เราใช้ประสบการณ์ส่วนตัว และประสบการณ์การสอนช่วย เลือกหัวข้อที่ต้องรู้ และหลักการคิดที่จะทำให้ผู้เรียนสามารถทำความเข้าใจ ต่อยอด และศึกษาเพิ่มเติมได้ด้วยตัวเอง


สามารถเรียนกับเราทั้งในรูปแบบคอร์สออนไลน์ คอร์สสดดูแลตัวต่อตัว และการจัดอบรมในบริษัท ให้ทุกคนสามารถเข้าถึง Python และประยุกต์ใช้กับการทำงานทั่วไปได้ทันที นอกจากนี้ยังต่อยอดไปได้อย่างไม่สิ้นสุด


8,157 views0 comments
bottom of page