แสดงบทความที่มีป้ายกำกับ Chapter-4 แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ Chapter-4 แสดงบทความทั้งหมด

วันจันทร์ที่ 5 มีนาคม ค.ศ. 2007

บทที่ 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 จะเหมาะกว่าเป็นอย่างมาก