เทคนิคการดึงข้อมูลใน HTML สำหรับทำข้อมูล Demo ด้วย phpQuery

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

เป็น Library ที่น่าสนใจอีกตัวจริงๆ มีเวอร์ชัน jQuery และ Java ด้วยแต่เบื้องต้นเอาเจ้านี่มาให้ลองเล่นดูก่อน ตัวที่ทดสอบนั้นผมใช้ phpQuery แบบ One File ครับ นั่นคือเวอร์ชัน ใช้ ไฟล์เดียวในการเรียกคำสั่ง โดยการไปดาวน์โหลดที่นี่

Screen Shot 2557-07-29 at 5.22.07 PM
ดาวน์โหลดตัว onefile.zip มาใช้ครับ

https://code.google.com/p/phpquery/downloads/list

แตก Zip ไฟล์ออกมาจะได้ไฟล์หนึ่งทำการ Rename เป็น phpquery.php
วิธีใช้ก็คือ สร้าง Virtual Directory ขึ้นมาก่อนแล้วก็สร้างไฟล์ index.php ของเราขึ้นมา ตัวอย่างของผมคือ ผมจะเก็บข้อมูลหนังจากเว็บไซต์ Siamzone.com เป็นตัวอย่างแล้วกันโดยหน้าที่ต้องการดึงข้อมูลคือ หน้านี้
http://www.siamzone.com/movie/m/7115

การทำงานของ phpQuery จะเหมือน DOM ครับคือ ไต่ไปตาม Attrbute ของ Tag HTML อีกทีเพื่อไปเอาค่ามา ดังนั้นตัวอย่างนี้ผมจะเอาค่า ชื่อหนัง และ คำอธิบายมาใช้ก่อน ซึ่งต้องใช้ Inspector Chrome มาช่วย หรือจะ View source เอาก็ได้ถ้าแม่นจริงๆนะครับ

Screen Shot 2557-07-29 at 5.27.55 PM

คำอธิบายจะดูได้จากตัวอย่างข้างล่าง นั่นคือ Div ที่มี id ว่า “thai_synopsis” ส่วนชื่อหนังผมะดึงจาก Title Tag ของหน้าเพจ URL นี้จากตัวอย่างที่ว่ามาเขียนคำสั่งนี้ครับ

ลอง รันดูผลลัพธ์จะได้แบบนี้

Screen Shot 2557-07-29 at 5.35.16 PM
ผลลัพธ์

มาสร้าง MySQL Database กันหน่อยดีกว่า ผมสร้างตารางที่ชื่อว่า movies ขึ้นมา สร้าง Columns ขึ้นมา 2 ช่องคือ title และ description ตามคำสั่งนี้ก็ได้

หลังจากนั้นก็ไปสร้างคำสั่งเชื่อมต่อ MySQL แล้วทำการ Insert ค่าลงในฐานข้อมูลครับ

คำสั่งโดยภาพรวมหน้า index.php ก็จะประกอบด้วย

Screen Shot 2557-07-29 at 5.35.23 PM
ใช้กับฐานข้อมูล

ทดสอบอีกครั้ง มีคำว่า SUCCESS

ไปดูที่ MySQL กันหน่อย

Screen Shot 2557-07-29 at 5.19.36 PM

ปรากฏว่ามีข้อมูลแล้วครับ

เรียบร้อย
เรียบร้อย

ตัวอย่างการใช้ phpQuery นี้เหมาะกับ การทดสอบระบบที่จะต้องมี content ปรากฏขึ้นแล้วคนทำ Demo ขี้เกียจจะ Copy บทความครับ ในกรณีที่ลูกค้าอยากดูภาพรวมแบบเต็มๆ แต่ถ้าจะเอาไว้ใช้ ขโมยข้อมูลเว็บมาลงล่ะก็ไม่ควรนะครับ

แบบฝึกหัดของบทเรียนนี้

แนะนำให้ลองไปใช้ phpQuery กับหน้า http://www.google.co.th/movies ดูครับ คุณอาจจะได้เว็บแอพพลิเคชันทำรอบหนังแบบ Realtime ได้เลยตัวหนึ่ง เอาไปใช้กับ Mobile ก็ได้นะ

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

ดูเพิ่มเต็ม

บัญชี นาย มนตรี พรมมา ธนาคาร กสิกร เลขบัญชี 0511245923 โกงเงิน