สำหรับใน website SET50 ข้อมูลที่อยู่ในรูปแบบของตารางที่อยู่บน Dynamic Website สามารถใช้ Selenium เข้าไปทำงานกับหน้าเวปโหลด HTML ออกมา และดึงด้วยคำสั่งสำเร็จได้เลย! นอกจากนี้จะพาทุกคนมาดูเครื่องมืออื่นๆ ที่ใช้ดึงข้อมูลตารางผ่าน Google Spreadsheet และเปรียบเทียบข้อดีข้อเสียสำหรับเทคนิคต่างๆ แบบชัดๆ!
เรียนในบทเรียนวิดีโอผ่าน Youtube
ลิ้งค์ข้อมูลที่ใช้งาน
เวปใช้สร้าง flow charthttps://app.diagrams.net/
set50 page https://www.set.or.th/th/market/index/set50/overview
ปัญหาทั่วไปของเครื่องมือเบื้องต้นสำหรับการเก็บข้อมูลหน้าเวป
สำหรับการใช้ Google Spreadsheet และคำสั่ง .read_html() ของ Pandas จะมีการทำงานคล้ายกัน โดยสามารถทำงานได้ดีกับ static website ที่จะส่งข้อมูล HTML ที่เก็บข้อมูลทั้งหมดมาในทันทีที่มีการขอข้อมูลมาใช้งาน แต่หลายครั้งที่แหล่งข้อมูลของเราอยู่ในรูปแบบของ dynamic website ที่ต้องมีการส่ง
flow การทำงานของโปรแกรม
เข้าไปยังเวปไซต์ที่เก็บหุ้นทุกตัวเอาไว้
นำชื่อหุ้นมาสร้างเป็นลิ้งค์สำหรับการเก็บข้อมูลของหุ้นแต่ละตัว
ไปยังหน้าเวปที่เก็บข้อมูลของหุ้นแต่ละตัว
ดึงตารางข้อมูลออกมา
ปรับแต่งข้อมูล
เก็บออกมาใส่ Dictionary
Checkpoint: จะใช้ได้จริง จะต้องทำสิ่งเหล่านี้ได้!
สำหรับการสร้างโปรเจคในวันนี้ สามารถทำตามขั้นตอนตามด้านทางทีละขั้นตอน ตาม checkpoint ด้านล่างได้เลย!
Checkpoint 1 ทดลองดึงตารางด้วย .read_html()
Checkpoint 2 ตัวอย่างการดึงข้อมูลด้วย .read_html() กับเวปตัวอย่างที่เป็น dynamic
Checkpoint 3 การติดตั้ง และการเตรียม chromedriver สำหรับการใช้งาน
Checkpoint 4 การเปิด chromedriver สำหรับการสั่งคอมพิวเตอร์เข้าเวปไซต์ ด้วย Python
Checkpoint 5 เข้าไปยังเวป SET50 ด้วย chromedriver
Checkpoint 6 การดึงตัว HTML ออกจาก website
Checkpoint 7 การสกัดตารางออกจาก HTML
Checkpoint 8 การนำข้อมูล columns มาแก้ไขให้เหมาะสม
Checkpoint 9 นำ columns ที่เหมาะสมมาตั้งเป็น columns ของตาราง
Checkpoint 10 การตั้ง index หรือ row ให้เหมาะกับการดึงข้อมูล
Checkpoint 11 ดึงข้อมูลชื่อหลักทรัพย์ มาสร้างเป็นลิ้งค์เพื่อเข้าไปยังข้อมูล
ลCheckpoint 12 ไปยังเวปไซต์ ดึง HTML และดึงตารางข้อมูลจากเวปที่เก็บข้อมู
Checkpoint 13 บันทึกข้อมูลตารางลงตัวแปรนำไปใช้งานต่อ
Checkpoint 14 นำข้อมูลตารางแต่ละตัวบันทึกลง Dictionary
Checkpoint 15 ทดลองดึงข้อมูลชื่อหลักทรัพย์แต่ละตัวที่เก็บไว้
Checkpoint 16 นำข้อมูลชื่อหลักทรัพย์แต่ละตัวมาสร้างเป็นลิ้งค์ เข้าเวป ดึงข้อมูล บันทึกลง Dictionary
Checkpoint 17 สร้างคำสั่งไปยังหน้าที่เก็บข้อมูลทุกหลักทรัพย์
Checkpoint 18 สร้างคำสั่งดึงข้อมูลตารางจากเวป และเตรียมเพื่อใช้งานต่อ
Checkpoint 19 สร้างคำสั่งสำหรับการเข้าไปดึงตารางจากแต่ละหน้าเวปที่เก็บข้อมูลตาราง
Comments