กลับไปบล็อก

ขอบเขตทางเทคนิคและการปฏิบัติตามกฎของเว็บครอว์ลิง: หลักการเก็บข้อมูล 4 ข้อ

ในการวิจัยตลาดต่างประเทศ การเก็บข้อมูลมักถูกหยุดกลางทาง การแยกขอบเขตทางเทคนิคออกจากขอบเขตด้านการปฏิบัติตามกฎ ช่วยให้ได้ข้อมูลที่ต้องการโดยไม่ข้ามเส้น หลักการที่นำไปใช้ได้จริง 4 ข้อช่วยกำหนดแนวทางได้ชัดเจน

ในการวิจัยตลาดต่างประเทศ ปัญหาที่แท้จริงมักไม่ใช่ว่าเก็บข้อมูลไม่ได้เลย แต่เป็นการที่เข้าถึงได้ถึงจุดหนึ่งแล้วจู่ ๆ ก็ไปต่อไม่ได้ สคริปต์เดียวกันที่สัปดาห์ก่อนยังทำงานได้ สัปดาห์นี้อาจคืนหน้าเปล่า และยิ่งปรับมากก็ยิ่งไม่เสถียร

สิ่งแรกที่ต้องแยกให้ชัดคือ อุปสรรคตรงหน้าเป็นขอบเขตทางเทคนิค หรือเป็นขอบเขตด้านการปฏิบัติตามกฎ วิธีรับมือสองกรณีนี้ต่างกันโดยสิ้นเชิง ข้อจำกัดทางเทคนิคบางอย่างปรับปรุงได้ด้วยงานวิศวกรรม แต่ถ้าเป็นข้อจำกัดด้านการปฏิบัติตามกฎ ต้องเปลี่ยนเส้นทาง

爬虫的技术边界与合规边界:四条采集原则的关键步骤与判断维度示意图

ขอบเขตทางเทคนิค: มาตรการตอบโต้พัฒนาอยู่ตลอด

มาตรการ anti-crawling ไม่ใช่กำแพงที่อยู่คงที่ การจำกัดความถี่ การตรวจสอบ IP ต้นทาง การวิเคราะห์พฤติกรรม และการตรวจจับ fingerprint ถูกนำมาใช้สลับกัน ขณะเดียวกันเว็บไซต์ก็เปลี่ยนโครงสร้าง HTML และสไตล์เป็นระยะ Parser ที่อาศัยกฎคงที่จึงอาจใช้ไม่ได้ทุกเมื่อ ผู้ที่เขียน crawler มักคุ้นเคยกับเรื่องนี้ดีว่า ส่วนที่กินเวลามากที่สุดไม่ใช่การดึงข้อมูล แต่คือการแก้สคริปต์ซ้ำ ๆ ให้ตามการเปลี่ยนแปลงของฝั่งเว็บไซต์

Dynamic rendering เป็นอีกต้นทุนหนึ่ง เนื้อหาสำคัญจำนวนมากขึ้นถูกโหลดแบบ asynchronous ด้วย JS ทำให้การวิเคราะห์แบบ static มองไม่เห็น จึงอาจต้องรันหน้าเว็บจริงผ่าน headless browser จึงจะได้ผลลัพธ์ วิธีนี้ทำได้ แต่เพิ่มต้นทุนด้านเครื่อง แบนด์วิดท์ และเวลา พร้อมกับทำให้ความเร็วลดลง

ต้นทุนของการตรวจสอบพฤติกรรมยิ่งเห็นได้ยากกว่า คำขอต้องดูเหมือนการใช้งานของคนจริง จึงต้องลดจังหวะการเก็บข้อมูล ลด concurrency ทำให้เวลางานคาดเดาได้ยากขึ้น และยังต้องเผื่อเวลาสำหรับการตรวจสอบด้วยคน การหวังให้ทั้งเร็วและเสถียรพร้อมกันจึงไม่สมจริง

อีกประเด็นที่มักถูกมองข้ามคือการปรับเนื้อหาเฉพาะบุคคล หน้าเดียวกันอาจแสดงฟีด ผลการค้นหา หรือแม้แต่ราคาแตกต่างกันตามภูมิภาค ภาษา หรือประเภทอุปกรณ์ หากต้องการให้ผลการเก็บข้อมูลครอบคลุม ต้องจำลองมุมมองของผู้ใช้จริงในตลาดเป้าหมาย ซึ่งเป็นภาระทางวิศวกรรมเพิ่มเติม

ขอบเขตด้านการปฏิบัติตามกฎ: เส้นที่ไม่ควรผ่อน

  • กฎ robots: ต้องเคารพขอบเขตที่เว็บไซต์ประกาศว่าอนุญาตให้ crawling ได้ นี่คือเส้นพื้นฐาน ไม่ใช่ตัวเลือก
  • เงื่อนไขการให้บริการ: หลายแพลตฟอร์มห้ามการเก็บข้อมูลอัตโนมัติไว้อย่างชัดเจน การฝ่าฝืนอาจทำให้บัญชีถูกจำกัดหรือเกิดความเสี่ยงทางกฎหมาย
  • สิทธิในข้อมูล: เก็บเนื้อหาได้ไม่ได้แปลว่าจะนำไปใช้ได้อย่างอิสระ ข้อมูลที่มีลิขสิทธิ์หรือสิทธิในฐานข้อมูลต้องระมัดระวังเป็นพิเศษ
  • การจำกัดความถี่: แม้เว็บไซต์จะไม่ได้ห้ามไว้อย่างชัดเจน ก็ควรควบคุม concurrency และช่วงห่างของคำขอ เพื่อไม่ให้บริการของอีกฝ่ายรับภาระหนักเกินไป

CAPTCHA และการยืนยันว่าเป็นมนุษย์ควรถูกแยกพิจารณาโดยเฉพาะ เพราะเป็นสัญญาณชัดเจนว่าแพลตฟอร์มไม่ยอมรับการเข้าถึงอัตโนมัติ หากมองว่าเป็นเพียงอุปสรรคทางเทคนิคที่ต้องเอาชนะ ลักษณะของการกระทำก็เปลี่ยนไป

หลักการเก็บข้อมูลอย่างสอดคล้อง 4 ข้อ

  1. เก็บเฉพาะข้อมูลสาธารณะ: เนื้อหาที่ต้องเข้าสู่ระบบหรือได้รับอนุญาตก่อนจึงจะเห็น ไม่ถือเป็นข้อมูลสาธารณะ
  2. ควบคุมความถี่: ใส่เวลาหน่วงที่เหมาะสม จำกัด concurrency และรักษาปริมาณคำขอให้อยู่ในระดับที่บริการอีกฝ่ายรองรับได้
  3. ไม่เก็บข้อมูลส่วนบุคคล: หลีกเลี่ยงชื่อ หมายเลขโทรศัพท์ อีเมล ที่อยู่ และช่องข้อมูลลักษณะเดียวกัน
  4. ปฏิบัติตามประกาศของเว็บไซต์: หลีกเลี่ยงเส้นทางที่กฎ robots หรือเงื่อนไขการให้บริการระบุว่าห้าม

ในทางปฏิบัติ ทีมที่ขยายสู่ตลาดต่างประเทศส่วนใหญ่สามารถครอบคลุมความต้องการวิจัยส่วนใหญ่ได้ด้วย API อย่างเป็นทางการร่วมกับชุดข้อมูลสาธารณะ เช่น รายงานอุตสาหกรรม แพลตฟอร์ม open data และชุดข้อมูลเชิงวิชาการ ขีดจำกัดความถี่และขอบเขตสิทธิ์จะระบุไว้ในเอกสาร API จึงเป็นเส้นทางที่จัดการง่ายที่สุด หากต้องการข้อมูลปริมาณมากขึ้นหรือเฉพาะทางมากขึ้น ค่อยพิจารณาบริการข้อมูลแบบเสียเงิน หรือเจรจาความร่วมมือที่ได้รับอนุญาตกับผู้ถือข้อมูล หากต้องการตัวอย่างไม่มาก การรวบรวมด้วยคนมักมีต้นทุนต่ำกว่าการดูแล crawler ระยะยาว

คำถามตัดสินใจที่ใช้ซ้ำได้

เมื่อเจออุปสรรค ให้ถามตัวเองว่า หากแพลตฟอร์มรู้ว่าฉันกำลังทำสิ่งนี้ เขาจะให้ interface กับฉัน หรือจะปิดกั้นบัญชีของฉัน?

กรณีแรกหมายถึงเป็นความสัมพันธ์ทางธุรกิจตามปกติ จึงควรหา interface อย่างเป็นทางการ กรณีหลังหมายถึงเส้นทางนั้นเองไม่ได้รับอนุญาต ควรเปลี่ยนเส้นทาง ไม่ใช่แค่เปลี่ยนเครื่องมือ

การจัดการสภาพแวดล้อมเมื่อหลายบัญชีแบ่งงานกัน

งานวิจัยบางประเภทจำเป็นต้องแยกบัญชีตามภูมิภาคหรือหมวดหมู่จริง เช่น ต้องเปรียบเทียบผลการค้นหาและราคาของแต่ละตลาดแยกกัน จุดสำคัญไม่ใช่ทำให้การปฏิบัติงานซ่อนตัวมากขึ้น แต่คือให้แต่ละบัญชีมีสภาพแวดล้อมที่เป็นอิสระและเสถียร เพื่อไม่ให้ข้อจำกัดของบัญชีหนึ่งส่งผลต่อบัญชีอื่น ในสถานการณ์นี้ สามารถใช้ PurpleMark สร้างสภาพแวดล้อมเบราว์เซอร์แยกให้แต่ละบัญชีวิจัย และผูกกับทางออกเครือข่ายของภูมิภาคที่เกี่ยวข้อง เพื่อทำให้ส่วนนี้กลายเป็นขั้นตอนประจำ

ในทางกลับกัน เมื่อกำหนดสภาพแวดล้อมแล้ว ไม่ควรเปลี่ยนบ่อย วันนี้เปลี่ยนทางออกเครือข่าย พรุ่งนี้เปลี่ยนพารามิเตอร์ จากมุมมองของแพลตฟอร์มอาจดูเหมือนบัญชีเปลี่ยนอุปกรณ์อยู่ตลอดเวลา และเพียงสัญญาณนี้ก็อาจดูน่าสงสัยได้

สรุป

ปัญหาเรื่องความถี่ IP และ fingerprint สามารถปรับปรุงได้ด้วยวิธีทางวิศวกรรม แต่ CAPTCHA และการยืนยันว่าเป็นมนุษย์เป็นขอบเขตของกฎที่ไม่ควรหลีกเลี่ยง การขยายแหล่งข้อมูลจากการ crawling เพียงอย่างเดียวไปสู API อย่างเป็นทางการ ชุดข้อมูลสาธารณะ บริการแบบเสียเงิน และความร่วมมือที่ได้รับอนุญาต มักช่วยให้การวิจัยมีความเสถียรมากขึ้น