top of page

เก็บข้อมูลจากเวป Shopee บันทึกลง Excel ด้วย Selenium, BeautifulSoup ผ่านเทคนิค Web Scraping

Web Scraping คือ เทคนิคการเก็บข้อมูลจากหน้าเวป โดยอาศัยการสกัด (Scrape) จากโค้ดที่ใช้สร้างการแสดงผลของเวปไซต์ที่สนใจ หรือ HTML นั่นเอง โดย Web Scraping กำลังกลายเป็นหนึ่งในทักษะที่มีคนพูดถึงมากขึ้นเรื่อยๆ เนื่องจากช่วยให้การเก็บข้อมูลจำนวนมากจากเวปไซต์ต่างๆ เป็นไปได้


เรียนในบทเรียนวิดีโอผ่าน Youtube


หลักการสำคัญของการเก็บข้อมูลจากหน้าเวปผ่านเทคนิค Web Scraping

  1. เวปไซต์ลักษณะของ e-commerce เวปเปรียบเทียบราคา หรือแม้แต่ social media มีการใช้ โครงสร้างของเวปไซต์ที่มีการใช้ element หรือ หน้าตาของเวปไซต์ ที่ซ้ำๆ กัน ทำให้เราสามารถใช้โครงสร้างของเวปไซต์มาเก็บข้อมูลจำนวนมากภายใต้การส่งคำสั่งเพียงไม่กี่คำสั่ง

  2. ในการทำงานกับเวปไซต์ และการเก็บข้อมูลบนเวปไซต์ จะทำผ่านภาษาอย่าง HTML ที่นำข้อมูลต่างๆ ทั้งปุ่ม ลิ้งค์ ข้อความ ภาพ มาแปะบน browser ให้มีการแสดงผลตามที่ถูกออกแบบมา สิ่งที่เราต้องทำ คือ การระบุตำแหน่งของข้อมูลที่ต้องการเก็บ และต้องการทำงานด้วยให้เหมาะสม


เก็บข้อมูลจากเวป e-commerce

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


flow การทำงานของโปรแกรม

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

  1. ส่วนการควบคุมการทำงานบนเวปไซต์ เพื่อให้มีการโหลดข้อมูลที่ต้องการเก็บให้ครบถ้วน >> ใช้ Selenium

    1. เปิดหน้าเวปไซต์ไปยังเวป https://www.shopee.com

    2. ทำการปิด pop-up ต่างๆ ที่บังการใช้งาน

    3. ไปยังช่องการค้นหาสินค้าที่ต้องการ พิมพ์ค้นหาสินค้าที่ต้องการ และกด Enter

    4. เมื่อโหลดไปยังหน้าการค้นหาเรียบร้อย จะทำการ zoom out เพื่อบังคับให้เวปไซต์โหลดข้อมูลให้ครบ

  2. ส่วนของการสกัดข้อมูลจากเวป และบันทึกลงไฟล์ Excel >> ใช้ BeautifulSoup

    1. ดึง HTML ออกมาจาก browser

    2. นำ HTML มาสกัดข้อมูล

    3. นำข้อมูลบันทึกลง Excel


Checkpoint: จะใช้ได้จริง จะต้องทำสิ่งเหล่านี้ได้!

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

  1. ติดตั้ง chromedriver และเปิดใช้งานได้

  2. เปิดเวปไซต์ที่ต้องการด้วย selenium ได้

  3. ใช้ Dev Tool ระบุตำแหน่งข้อมูลที่ต้องการได้

  4. ระบุตำแหน่งของข้อมูลบนเวปที่ต้องการทำงานด้วยได้ผ่านเทคนิคการระบุข้อมูลบน HTML เช่น การใช้ xpath หรือการระบุชื่อ และ attribute

  5. ส่งคำสั่งเพื่อทำงานกับข้อมูลบนเวปได้ เช่น คลิก พิมพ์ scroll หรือ zoom เป็นต้น

  6. ดึงข้อมูล HTML ออกมาจาก chromedriver ได้

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

  8. สกัดข้อมูล และปรับรูปแบบ เพื่อบันทึกลงไฟล์ Excel ได้


ข้อควรระวัง

  • ในการทำ Web Scraping การเปลี่ยนแปลงของเวปไซต์มีผลต่อการเก็บข้อมูลเนื่องจาก เทคนิคนี้มีพื้นฐานจากการระบุตำแหน่งข้อมูลที่ต้องการจาก HTML ของเวปไซต์ โดยเมื่อเวปมีการอัพเดท จะต้องมีการปรับแต่งของโค้ดตามไปด้วย

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


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

3,141 views3 comments

3 Comments


Guest
May 04, 2022

รวมข้อมูลคอนโดจากหลายๆ เวป มาเปรียบเทียบกัน

Like

Guest
May 04, 2022

เก็บข้อมูลหุ้น ใช้วิเคราะห์ว่า ตัวไหนน่าซื้อ

Like

Ultimate Python
Ultimate Python
May 04, 2022

อยากเก็บข้อมูลจากเวปอะไร? เพราะอะไร? เม้นท์บอกเรา เวปไหนน่าสนใจ เราจะนำมาทำเป็นบทเรียนถัดไป!

Like
bottom of page