สวัสดีครับ วันนี้ผมจะมาพูดถึงสิ่งที่ใกล้ตัวหรืออาจจะเคยได้ยินผ่าน ๆ ว่า Web Crawler, Crawler หรือบางคนก็รู้จักกันในชื่อ Web Spider แต่เคยสงสัยกันไหมครับว่าจริง ๆ แล้ว มันคืออะไร? ทำงานยังไง? และมีประโยชน์อย่างไร? ซึ่งในบทความนี้จะขอเรียกว่า Web Crawler นะครับ เพื่อสะดวกต่อการกล่าวถึง
Web Crawler คืออะไร
Web Crawler, Crawler หรือ Web Spider เป็นโปรแกรมคอมพิวเตอร์ ที่ทำหน้าที่ในการท่องไปตามเว็บไซต์ต่าง ๆ โดยจากหน้าเริ่มต้นที่มีข้อมูลอยู่แล้ว หลังจากนั้นตาม Hyperlink จากที่ได้จากหน้าหลักในเพจนั้น ๆ ในขณะที่ท่องเว็บไปยังหน้าต่าง ๆ ตาม Hyperlink นั้น Web Crawler จะทำการ Indexing แบบอัตโนมัติอย่างเป็นระบบเพื่อให้สามารถเรียกดูข้อมูลของเว็บนั้น ๆ ได้เมื่อต้องการ ซึ่งหมายความว่าถ้าองค์กรหรือเจ้าของเว็บไซต์ต้องการที่จะให้ตัว Search Engine หาเว็บของตัวเองเจอก็ต้องทำ Indexing ก่อน ถ้าไม่เช่นนั้น Search Engine จะไม่สามารถหาเว็บไซต์ของเราเจอได้ การตรวจสอบเว็บด้วย Crawling Tool ยังสามารถช่วยตรวจสอบลิงก์ที่พังของเว็บไซต์หรือ ชื่อ title ของเว็บไซต์ที่ยาวหรือสั้นจนเกินไปได้อีกด้วย
ถ้าจะให้พูดสั้น ๆ คือ จุดประสงค์หลัก ๆ ของ Web Crawler นั้นจริง ๆ แล้ว คือเพื่อศึกษาว่าส่วนมากข้อมูลของเว็บไซด์นั้น ๆ เกี่ยวกับอะไรและเก็บข้อมูลส่วนนั้นไปใช้ต่อกับ Search Engine นั่นเอง ซึ่งจะมีการกล่าว ถึง Search Engine เพิ่มเติมในพาร์ทต่อ ๆ ไปนะครับ
ทำไมถึง Web Crawlers ถึงถูกเรียกว่า Web Spiders
Internet หรือว่า World Wide Web หรือเรียกสั้น ๆ ว่า เว็บ ซึ่งมีคำว่า Web ที่แปลว่าใยแมงมุมทำให้ Web Crawler ที่หาข้อมูลตาม World Wide Web เปรียบเสมือนแมงมุมที่ไต่บนใยแมงมุมเพื่อเก็บข้อมูลนั่นเอง และที่มาของคำว่า Web Crawler นั้นเป็นเพราะเทคนิคการท่องและเก็บข้อมูลของเว็บเช่นกัน
Web Crawler เกี่ยวข้องยังไงกับ Search Engine
โดยทั่วไปนั้น Web Crawler หรือ Search Engine บอทจะถูกสร้างเพื่อใช้กับ Search Engine เพราะจริง ๆ แล้ว Search Engine เดี่ยว ๆ ไม่สามารถเก็บข้อมูลของเว็บต่าง ๆ ได้จึงต้องมี Web Crawler เพื่อมาช่วยในการเก็บข้อมูลของเว็บต่าง ๆ เช่น ลิงก์ที่เกี่ยวข้องกับเว็บนั้น ๆ เพื่อนำมาใช้ร่วมกับ Search Algorithm ของ Search Engine เพื่อส่งข้อมูลให้กับผู้ใช้ที่ทำการค้นหา โดยในส่วนของหน้าเว็บที่เจ้าของเว็บไม่อยากให้เจอใน Search Engine จะถูกเก็บใน robots.txt ไฟล์ โดยไฟล์ดังกล่าวจะเป็นการบอกกฎหรือข้อตกลงกับบอทหรือ Web Crawler ว่าหน้าไหนควรหรือไม่ควรทำการ Indexing หรือ สามารถ Indexing ได้แค่ในหน้านั้นบางส่วนเท่านั้น
การ Search Indexing คืออะไร?
พูดง่าย ๆ คือ Search Indexing เปรียบเสมือนการดึงข้อมูลต่าง ๆ ในอินเทอร์เน็ตมาจัดทำเป็นสารบัญเพื่อให้ Search Engine รู้ว่าจะดึงข้อมูลมาใช้จากที่ไหนได้บ้างในอินเทอร์เน็ตอันกว้างใหญ่เมื่อมีคนทำการหาข้อมูล
Indexing เน้นไปที่ส่วนมากของหน้านั้นมีคำว่าอะไรบ้าง โดยการเก็บทุกคำยกเว้นบางคำเช่น คำเชื่อม เช่น a, and และ the ในเคสของ Google โดยเมื่อมีการค้นหาคำ เช่น Website ตัว Search Engine จะทำการหาหน้าของเว็บไซต์จาก Index โดยจะดึงหน้าที่มีคำว่า Website หรือคำที่ใกล้เคียงที่สุดมาให้ผู้ใช้
Web Crawler ทำงานยังไง?
Web Crawler เข้าไปยังหน้าหลักของเว็บไซต์ที่ต้องการให้ทำ Indexing หาทำการสำรวจและจัดหมวดหมู่ของหน้านั้น ๆ หลังจากนั้นทำการหาไฟล์ robots.txt เพื่อเช็กว่าหน้าไหนควรเข้าถึงหน้าไหนไม่ควร เพื่อทำตามกฎของเจ้าของเว็บไซต์ หลังจากนั้นไปยังหน้าต่อไป โดยตามจาก Hyperlink ที่เจอในหน้านั้น ๆ ในขณะที่ไปยังหน้าต่าง ๆ Web Crawler จะทำการเก็บและคัดลอก meta tags จากนั้นจัดทำการ Indexing ไว้สำหรับ Search Engine เพื่อสแกนหา keywords
Web Crawler มักจะท่องเว็บไปตามเว็บและทำ Indexing เสมอ ๆ เหมือนกับการสำรวจโลก แต่ Web crawler นั้นสามารถไปได้แค่เว็บที่เปิดเป็นสาธารณะเท่านั้น ในกรณีของเว็บที่ไม่เป็นสาธารณะ (Private) Web crawler ไม่สามารถเข้าถึงได้ เช่น พวก Dark Web เป็นต้น
ในบางกรณีที่เจ้าของเว็บไม่มีการส่ง Sitemap ให้ Search Engine เพื่อทำ Indexing ตัว Web Crawler ก็ยังสามารถหาเว็บไซต์จากเว็บอื่น ๆ ที่มีการลิงก์ถึงได้
ความแตกต่างระหว่าง Web Crawling กับ Web scraping
Web Crawling and Web Scraping มีความแตกต่างกันเล็กน้อย และคอนเซ็ปต์ที่ค่อนข้างคล้ายคลึงกันจึงสามารถทำให้งงได้ง่าย โดยมีข้อแตกต่างที่เห็นได้ชัดคือ
Web crawling นั้นจะเกี่ยวกับการท่องเว็บและทำ Indexing โดยคำนึงถึงกฎหรือข้อตกลงโดยยึดตาม robots.txt ไฟล์ให้ไม่เกินขอบเขตหรือที่เรียกว่า Overtax
ส่วนของ Web Scraping นั้นจะทำท่องเว็บและทำ Indexing ไม่สนกฎหรือข้อตกลงของเว็บ
กล่าวคือ Web scraping คือ Web Crawling ที่เก็บข้อมูลของหลาย ๆ เว็บโดยที่ไม่ได้รับอนุญาตนั่นเอง ปกติแล้วตัว Web Crawling จะไล่ตาม Hyperlinks เพื่อเก็บข้อมูลหรือทำ Indexing เท่านั้น แต่ Web Scraping จะค่อนข้างเน้นไปทางดึงข้อมูลจากเว็บไซต์มาใช้ประโยชน์ในการวิเคราะห์ข้อมูลที่ได้มาเพื่อต่อยอดกิจกรรมต่าง ๆ เช่น ธุรกิจนำข้อมูลมาวิเคราะห์ตลาดเพื่อหากลยุทธ์เพิ่มยอดขาย เป็นส่วนมาก
บอททั่ว ๆ ไปนั้นสามารถใช้เป็น Web Scraping ได้ แต่ส่วนมากบอท Web Scraping จะใช้ Artificial Intelligence เพื่อหาและคัดลอกข้อมูลที่มีความเหมาะสมมากขึ้นในหน้านั้น ๆ เพื่อนำไปใช้ต่อยอด
SEO คืออะไร และมีความสำคัญอย่างไรกับ Web Crawlers
SEO หรือ Search Engine Optimization เป็นกระบวนการทำให้เว็บนั้นมีการเข้าถึงจากการค้นหาหน้าเว็บได้มากขึ้น วัดจากการที่เว็บมีความสมบูรณ์มากน้อยแค่ไหน ถ้าเว็บพังหรือมีข้อผิดพลาดการเข้าถึงเว็บนั้นก็จะยากตาม เป็นเหตุผลที่ว่าทำไมต้องมีการเช็กให้ดีก่อนลิงก์ในเว็บนั้นไม่พัง ไม่เช่นนั้น จะถูกปิดกั้นการเข้าถึง หรือเข้าถึงได้ลำบากขึ้นนั้นเอง
ตัวอย่างของ Web Crawlers ใน Search Engine ต่าง ๆ
หลาย ๆ Search Engine ชื่อดังส่วนมากนั้นมี Web Crawler เป็นของตัวเองบาง Search Engine มี Web Crawler มากกว่า 1 ตัวคอยทำการท่องเว็บและเก็บข้อมูล ซึ่งแต่ตัวใช้อัลกอริทึมเฉพาะเพื่อรวบรวมข้อมูลเกี่ยวกับหน้าเว็บ โดยมีชื่อเรียกดังนี้
- Google: Googlebot (two crawlers, Googlebot Desktop and Googlebot Mobile, for desktop and mobile searches)
- Bing: Bingbot
- Yandex (Russian search engine): Yandex Bot
- Baidu (Chinese search engine): Baidu Spider
- Amazon web crawler: Amazonbot
- DuckDuckGo: DuckDuckBot
- Yahoo: Yahoo Slurp