วันอาทิตย์ที่ 23 พฤศจิกายน พ.ศ. 2551

web scraping

เขียน blog เป็นครั้งแรก ขอเอางานจากวิชาสัมนามาลงซะหน่อย เผื่อจะมีประโยชน์บ้าง

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


หลักการทำงานของ web scraping คือโปรแกรมที่รู้วิธีการดึงข้อมูลจากเอกสารหน้า html โดยการเรียนรู้ภาษา markup และรูปร่างภายนอกในการแสดงข้อมูล ทำการดึงเฉพาะข้อมูลที่เราต้องการ

ซึ่งการทำ นั้นมีหลายวิธี และยังมีโปรแกรมสำเร็จรูปที่ช่วยในการทำด้วย แต่ที่จะนำเสนอวันนี้ 2 วิธี คือ การใช้ excel และ การเขียนขึ้นเองโดยใช้ php


วิธีที่1 การสร้าง Web Scraping โดยใช้ Microsoft Excel 2003

1. เข้าสู่ Microsoft Excel 2003 >> ข้อมูล >> นำเข้าข้อมูลจากภายนอก >> สร้างแบบสอบถามเว็บ

















2. ขั้นตอนการนำข้อมูลเข้า













ส่วนที่ 1 ใส่ url ของเว็บที่ต้องการ scrap

ตัวอย่างใช้เวปที่บอกราคาน้ำมัน

http://www.eppo.go.th/retail_prices.html

ส่วนที่ 2 คลิ๊กเพื่อเลือกส่วนที่ต้องการทำการ scrap

จะเป็นรูปลูกศรเหลืองๆ

ส่วนที่ 3 คลิ๊กเพื่อนำข้อมูลเข้า





3. กำหนดตำแหน่งข้อมูล













ผลที่ได้จะเป็นแบบนี้ เราก็จะมีราคาน้ำมันที่อัพเดททุกครั้งเป็นของเรา แต่ต้องต่อเนตนะ
แต่ไม่ต้องเข้าเวปจิงๆของเค้า














วิธีที่ 2 เขียน scrap เอง โดยใช้ความรู้ php (ที่เจ้าของบล็อกมีอยู่น้อยนิด)

1. เลือกเว็บที่เราต้องการทำการ scraping เล็งส่วน

ที่เราต้องการข้อมูล













2. เลือกส่วนข้อมูลที่เราต้องการจะ scraping โดยการ View Page Source

เพื่ออ่าน code HTML เพื่อเลือกส่วนที่เราต้องการข้อมูล















3. ลงมือเขียน php รายละเอียดของ oil.php ที่เราเขียนขึ้นมาเอง









ผลที่ได้ เราก็จะได้ราคาน้ำมันมาอยู่ในหน้าเวปของเราเอง















ปล. web scraping ถือเป็นการ แฮคข้อมูล
เพราะฉะนั้น ควรใช้อย่างระมัดระวัง ใช้ในทางที่ถูก ให้เครดิตกะเจ้าของเวปต้นฉบับด้วย
ขออภัยที่ภาพไม่ชัด







1 ความคิดเห็น:

Unknown กล่าวว่า...

้ฉันต้องการศึกษาเรื่องเกี่ยวกับ web scraping ไม่ทราบว่าจะหาข้อมูลได้ที่ไหน ค่ะ
ปล.สนใจมากๆๆค่ะ