บทที่ 4 Non-API Google Application แอพพลิเคชันสำหรับ Google ที่ไม่ได้ใช้ Google Web API (Hack # 41-49)

จากเนื้อหาที่ผ่านมาในหนังสือเล่มนี้ สิ่งดีๆหลายอย่างนั้น สามารถทำได้จากเพียงแค่
การ เข้าถึงข้อมูล Google โดยไม่จำเป็นต้องใช้ Google API เลย ในบทนี้จะกล่าวถึงแอพพลิเคชันของ Google ที่ใช้งานผ่านโค้ด HTML แทนที่จะใช้ Google API
เปรียบเทียบการทำ Scrape กับ Google API
Scrape คืออะไรและต่างจากการใช้ Google API อย่างไรบ้าง? scrape นั้นคือ การใช้โปรแกรมใดโปรแกรมหนึ่งเพื่อดึงข้อมูลออกมาจากโค้ด HTML ของหน้าเว็บเพจ
ส่วน Google API นั้น แทนที่จะใช้การดึงข้อมูลจากโค้ด HTML ที่บันทึกไว้ กลับใช้วิธีคิวรีตรง ๆ จากข้อมูลการสืบค้นของ Google
ทำไมจึงต้อง Scrape ข้อมูลของ Google ?
ทำไม ถึงต้องมีการทำ scrape ด้วย? Google API ก็ทำอะไรต่อมิอะไรได้สารพัดแล้วมิใช่หรือ? อืมม์ แต่คำตอบคือไม่ใช่ทุกอย่าง แม้ว่า Google API คือวิธีที่ดีที่สุดในการสืบค้น Google แต่มันก็หยุดอยู่แค่นั้น แถมยังมีการจำกัดว่าจะดึงข้อมูลอะไรออกมาจากหน้าเว็บสืบค้นหลักของ Google ได้บ้างด้วย เป็นต้นว่า Google API นั้นสืบค้นหมายเลขโทรศัพท์ไม่ได้ และยังไม่สามารถเข้าถึงข้อมูลของ Google News หรือ Google Catalogs รวมทั้งข้อมูลการสืบค้นพิเศษอื่นๆเกือบทั้งหมดได้
นั่นเป็นเรื่องค่อนข้างแย่เลยทีเดียว เพราะว่ามีสิ่งดีๆหลายอย่างที่สามารถทำได้โดยใช้ข้อมูลการ
สืบ ค้นที่ Google API ไม่สามารถเข้าถึงได้ เช่น หากคุณต้องการเกาะติดข่าวบางเรื่องด้วยการดูผลการสืบค้นที่นำมารวมไว้ใน spreadsheet หน้าเดียวเลยนั้น ย่อมจะง่ายกว่าการสำรวจหน้าเว็บไปทีละหน้าๆเป็นแน่ นอกจากนั้นการมีข้อมูลอยู่ในรูปของ spreadsheet ทำให้การใช้งานหรือการดัดแปลงข้อมูลในนั้นทำได้สะดวกตามความพอใจของคุณอีก ด้วย
สิ่งที่ต้องตระหนักระหว่างการทำ scrape
แม้โปรแกรมที่เรากล่าวถึงในบทนี้จะทำให้คุณ scrape อย่างสนุกสนานได้เป็นชั่วโมงๆ แต่ก็มีบางสิ่งที่ต้องตระหนักได้แก่
การหยุดทำงานของ scraper
scraper สร้างขึ้นมาโดยมีฐานจากรูปแบบรายการผลลัพธ์จาก Google ซึ่งถ้าหากว่ารูปแบบของผลลัพธ์ดังกล่าวเปลี่ยนไป ก็อาจจะส่งผลให้ scraper ตัวนั้นหยุดรทำงานไปเลยก็ได้
อย่าให้การ scrape ทำงานแบบอัตโนมัติ
การ ทำอะไรเพิ่มเกินปกติอีกขั้นหนึ่ง โดยการทำให้โปรแกรมดึงข้อมูลและ scrape โดยอัตโนมัติ อาจเป็นแนวคิดที่น่าลอง แต่ว่าอย่าได้ทำเด็ดขาด เพราะว่าการดึงข้อมูลอย่างอัตโนมัติด้วยวิธีอื่นใดที่ไม่ใช่ Google API นั้นจะผิดกฎการใช้บริการของ Google (Google’s Term of Service) คุณอาจจะคิดว่าคงไม่เป็นไร ใครจะหาคุณเจอ แต่ก็อย่าลืมว่าแม้เขาจะหาคุณไม่เจอตรงๆ แต่ว่า IP address ที่คุณใช้จะถูกห้ามไม่ให้เข้าระบบอีก ทำให้เกิดผลกระทบกับผู้ใช้ทั้งหมดที่มาจาก IP address เดียวกับคุณ หากถามว่าเป็นการขู่กันเล่นหรือเปล่า? คำตอบก็คือมีการลงโทษเกิดขึ้นจริงๆ โดยคุณสามารถดู IP address ที่โดนแบนเมื่อช่วงต้นปี 2002 ได้ที่ http://news.com.com/2100-1023-883558.html
ผลของการสืบค้นมีจำนวนจำกัด
แม้ ว่าคุณจะ scrape เฉพาะหน้าเว็บที่เป็นผลลัพธ์ของการสืบค้นก็ตาม แต่ว่าคุณก็ยังอยู่ในข้อจำกัดของการสืบค้นด้วย Google อยู่ดี กล่าวคือ คุณไม่อาจได้รับผลลัพธ์เกิน 1,000 รายการต่อการสืบค้นผ่านหน้าเว็บหนึ่งครั้ง เอาเป็นว่า คุณควรเอาใจใส่กับการตั้งค่าในการสืบค้นหน้าเว็บให้ดี เพื่อที่คุณจะได้ผลลัพธ์ที่มีประสิทธิภาพสูงจากการ scrape แต่ละครั้ง
การใช้งานไฟล์ข้อมูลจากการ scrape
เมื่อ ได้ผลลัพธ์จากการสืบค้น ก็ทำการ scrape จากนั้นก็บันทึกเป็นไฟล์ comma-delimited (ไฟล์ที่อยู่ในรูปของ text และแบ่งข้อมูลแต่ละส่วนด้วย comma) แล้วจะนำไปใช้ประโยชน์อย่างไรต่อไปดี?
โดย ส่วนใหญ่ เรามักจะคิดว่าไฟล์ comma-delimited เป็นไฟล์ประเภท spreadsheet และก็หยุดที่ตรงนั้น ที่จริงแล้วมันมีมากกว่านั้น เป็นต้นว่า ไฟล์ comma-delimited นั้นสามารถ import เข้าไปยังฐานข้อมูลได้ หรือ import ไปยังโปรแกรมจัดการข้อมูลอื่นๆก็ได้ หรือคุณอาจจะเขียนแอพพลิเคชันด้วยโปรแกรม Perl (หรือให้เพื่อนที่เป็นเซียนคอมพิวเตอร์เขียนให้) เพื่อใช้งานไฟล์ comma-delimited ให้น่าสนใจยิ่งขึ้นก็ย่อมได้
ข้อ ดีของไฟล์ comma-delimited คือ ไม่มีปัญหากับเวลาที่เปลี่ยนไป เพราะมันเป็นแค่ไฟล์ในรูปของ text ซึ่งคุณจะนำไปใช้กับโปรแกรมได้หลากหลาย โดยไม่ต้องกังวลกับความไม่เข้ากันเลย และที่สำคัญคือไฟล์ comma-delimited ก็ค่อนข้างจะมีขนาดเล็กด้วย
ไม่ยุ่งยากซับซ้อน
แอพพลิเคชัน ประเภท scrape นั้นจะไม่ซับซ้อนเท่าแอพพลิเคชันจาก Google API แต่ว่าถ้าคุณอยากจะเก็บผลลัพธ์การสืบค้นจากคุณสมบัติหลายๆแบบของ Google ล่ะก็ การ scrape จะเหมาะกว่าเป็นอย่างมาก

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

ปัญหาและเฉลยธรรม นักธรรมชั้นโท สอบในสนามหลวง พ.ศ. ๒๕๔๓ วันพฤหัสบดี ที่ ๑๖ พฤศจิกายน พ.ศ. ๒๕๔๓

ปัญหาและเฉลยวินัยบัญญัติ นักธรรมชั้นเอก สอบในสนามหลวง พ.ศ. ๒๕๔๓ วันเสาร์ ที่ ๑๘ พฤศจิกายน พ.ศ. ๒๕๔๓

ปัญหาและเฉลยวิชาธรรม นักธรรมชั้นโท สอบในสนามหลวง วันเสาร์ ที่ ๑๙ พฤศจิกายน พ.ศ. ๒๕๔๘