Web Scraping คือ เทคนิคการเก็บข้อมูลจากหน้าเวป โดยอาศัยการสกัด (Scrape) จากโค้ดที่ใช้สร้างการแสดงผลของเวปไซต์ที่สนใจ หรือ HTML นั่นเอง โดย Web Scraping กำลังกลายเป็นหนึ่งในทักษะที่มีคนพูดถึงมากขึ้นเรื่อยๆ เนื่องจากช่วยให้การเก็บข้อมูลจำนวนมากจากเวปไซต์ต่างๆ เป็นไปได้
เรียนในบทเรียนวิดีโอผ่าน Youtube
หลักการสำคัญของการเก็บข้อมูลจากหน้าเวปผ่านเทคนิค Web Scraping
เวปไซต์ลักษณะของ e-commerce เวปเปรียบเทียบราคา หรือแม้แต่ social media มีการใช้ โครงสร้างของเวปไซต์ที่มีการใช้ element หรือ หน้าตาของเวปไซต์ ที่ซ้ำๆ กัน ทำให้เราสามารถใช้โครงสร้างของเวปไซต์มาเก็บข้อมูลจำนวนมากภายใต้การส่งคำสั่งเพียงไม่กี่คำสั่ง
ในการทำงานกับเวปไซต์ และการเก็บข้อมูลบนเวปไซต์ จะทำผ่านภาษาอย่าง HTML ที่นำข้อมูลต่างๆ ทั้งปุ่ม ลิ้งค์ ข้อความ ภาพ มาแปะบน browser ให้มีการแสดงผลตามที่ถูกออกแบบมา สิ่งที่เราต้องทำ คือ การระบุตำแหน่งของข้อมูลที่ต้องการเก็บ และต้องการทำงานด้วยให้เหมาะสม
เก็บข้อมูลจากเวป e-commerce
ในวันนี้เราจะใช้เทคนิคการสร้างบอทด้วย Selenium และ BeautifulSoup เลียนแบบการทำงานกับเวปด้วยคน เพื่อเข้าไปเก็บข้อมูลส่วนที่เราต้องการ โดยการเขียนชุดคำสั่งมีข้อดีกว่าการเข้าไปทำด้วยตัวเอง คือ เมื่อมีการทำซ้ำๆ กับข้อมูลจำนวนมาก ข้อผิดพลาดจะน้อยกว่า และทำได้รวดเร็วกว่า
flow การทำงานของโปรแกรม
การทำงานของโปรแกรมเก็บข้อมูลจากเวปในตัวอย่างจะถูกแบ่งออกเป็น 2 ส่วนการทำงานหลัก ที่มีการทำงานย่อยแต่ละคำสั่ง ตามเครื่องมือที่ใช้ในแต่ละส่วน
ส่วนการควบคุมการทำงานบนเวปไซต์ เพื่อให้มีการโหลดข้อมูลที่ต้องการเก็บให้ครบถ้วน >> ใช้ Selenium
เปิดหน้าเวปไซต์ไปยังเวป https://www.shopee.com
ทำการปิด pop-up ต่างๆ ที่บังการใช้งาน
ไปยังช่องการค้นหาสินค้าที่ต้องการ พิมพ์ค้นหาสินค้าที่ต้องการ และกด Enter
เมื่อโหลดไปยังหน้าการค้นหาเรียบร้อย จะทำการ zoom out เพื่อบังคับให้เวปไซต์โหลดข้อมูลให้ครบ
ส่วนของการสกัดข้อมูลจากเวป และบันทึกลงไฟล์ Excel >> ใช้ BeautifulSoup
ดึง HTML ออกมาจาก browser
นำ HTML มาสกัดข้อมูล
นำข้อมูลบันทึกลง Excel
Checkpoint: จะใช้ได้จริง จะต้องทำสิ่งเหล่านี้ได้!
เพื่อให้นำไปปรับใช้ได้จริง ผู้เรียนจะต้องเข้าใจคำสั่งย่อยๆ ที่ถูกเรียกใช้ ตอบได้ว่าทำอย่างไร และทำไปทำไม ซึ่งเราทำ checkpoint เอาไว้ให้สามารถเช็คกับตัวเองเบื้องต้นว่า ตอนนี้เราเข้าใจ และพร้อมนำไปใช้งานแล้วหรือยัง
ติดตั้ง chromedriver และเปิดใช้งานได้
เปิดเวปไซต์ที่ต้องการด้วย selenium ได้
ใช้ Dev Tool ระบุตำแหน่งข้อมูลที่ต้องการได้
ระบุตำแหน่งของข้อมูลบนเวปที่ต้องการทำงานด้วยได้ผ่านเทคนิคการระบุข้อมูลบน HTML เช่น การใช้ xpath หรือการระบุชื่อ และ attribute
ส่งคำสั่งเพื่อทำงานกับข้อมูลบนเวปได้ เช่น คลิก พิมพ์ scroll หรือ zoom เป็นต้น
ดึงข้อมูล HTML ออกมาจาก chromedriver ได้
วิเคราะห์โครงสร้างการเก็บข้อมูลของเวปไซต์ได้ ระบุได้ว่าข้อมูลที่เกิดซ้ำ คือตรงไหน และข้อมูลที่ต้องการจะต้องระบุอย่างไร
สกัดข้อมูล และปรับรูปแบบ เพื่อบันทึกลงไฟล์ Excel ได้
ข้อควรระวัง
ในการทำ Web Scraping การเปลี่ยนแปลงของเวปไซต์มีผลต่อการเก็บข้อมูลเนื่องจาก เทคนิคนี้มีพื้นฐานจากการระบุตำแหน่งข้อมูลที่ต้องการจาก HTML ของเวปไซต์ โดยเมื่อเวปมีการอัพเดท จะต้องมีการปรับแต่งของโค้ดตามไปด้วย
ไม่การันตีว่าจะทำได้กับทุกเวปไซต์ เนื่องจากเวปไซต์สามารถติดตั้งการคัดกรองไม่ให้เข้าดึงข้อมูลด้วยคำสั่ง หรือมีการตรวจจับพฤติกรรมที่อาจเข้าค่ายว่าเป็นบอท ในการใช้จริงจึงต้องมีการตรวจสอบเบื้องต้น เช่น การดึงข้อมูล HTML มานั้น ได้ข้อมูลเหมือนกับการเปิดด้วย browser ปกติ
รวมข้อมูลคอนโดจากหลายๆ เวป มาเปรียบเทียบกัน
เก็บข้อมูลหุ้น ใช้วิเคราะห์ว่า ตัวไหนน่าซื้อ
อยากเก็บข้อมูลจากเวปอะไร? เพราะอะไร? เม้นท์บอกเรา เวปไหนน่าสนใจ เราจะนำมาทำเป็นบทเรียนถัดไป!