อ่าน 2 นาที
การดึงข้อมูลจากเครื่องมือค้นหา
การดึงข้อมูลจากเครื่องมือค้นหา (Scraping) หมายถึงการดึง URL คำอธิบาย และข้อมูลอื่นๆ จาก ผล การค้นหาของเครื่องมือค้นหา โดยอัตโนมัติ เป็นสาขาย่อยเฉพาะทางของ การดึงข้อมูลจาก เว็บไซต์...
การดึงข้อมูลจากเครื่องมือค้นหา
การดึงข้อมูลจากเครื่องมือค้นหา (Scraping) หมายถึงการดึงURLคำอธิบาย และข้อมูลอื่นๆ จาก ผล การค้นหาของเครื่องมือค้นหา โดยอัตโนมัติ เป็นสาขาย่อยเฉพาะทางของ การดึงข้อมูลจาก เว็บไซต์ (Web Scraping)ที่มุ่งเน้นเฉพาะเนื้อหาจากเครื่องมือค้นหาเท่านั้น
โดยทั่วไปแล้ว ผู้ให้บริการ SEO รายใหญ่ๆมักจะพึ่งพาการดึงคำค้นหาจากเครื่องมือค้นหาเป็นประจำ เพื่อตรวจสอบอันดับการแข่งขันของเว็บไซต์ลูกค้าสำหรับคำค้นหาที่เกี่ยวข้อง หรือสถานะ การจัดทำดัชนี ของเว็บไซต์เหล่านั้น
กระบวนการเข้าไปในเว็บไซต์และดึงข้อมูลออกมาโดยอัตโนมัติ มักเรียกว่า " การรวบรวม ข้อมูล " (crawling) เครื่องมือค้นหาส่วนใหญ่ได้รับข้อมูลเกือบทั้งหมดจากบอทรวบรวมข้อมูลอัตโนมัติ
ความยากลำบาก
Google เป็นเครื่องมือค้นหาที่ใหญ่ที่สุดอย่างเห็นได้ชัด โดยมีผู้ใช้มากที่สุดทั้งในแง่ของจำนวนและรายได้จากโฆษณาเชิงสร้างสรรค์ ซึ่งทำให้ Google เป็นเครื่องมือค้นหาที่สำคัญที่สุดสำหรับบริษัทที่เกี่ยวข้องกับ SEO [ 1 ]
แม้ว่า Google จะไม่ดำเนินคดีทางกฎหมายกับการคัดลอกข้อมูล แต่ก็ใช้วิธีการป้องกันหลายอย่างที่ทำให้การคัดลอกผลการค้นหาของ Google เป็นเรื่องยาก แม้ว่าเครื่องมือคัดลอกจะจำลองการทำงานของเว็บเบราว์เซอร์ ได้อย่าง สมจริงก็ตาม
- Google ใช้ระบบที่ซับซ้อนในการจำกัดอัตราการส่งคำขอ ซึ่งอาจแตกต่างกันไปในแต่ละภาษา ประเทศ User-Agent รวมถึงคำหลักหรือพารามิเตอร์การค้นหา การจำกัดอัตรานี้อาจทำให้การเข้าถึงเครื่องมือค้นหาแบบอัตโนมัติคาดเดาได้ยาก เนื่องจากรูปแบบพฤติกรรมนั้นไม่เป็นที่รู้จักของนักพัฒนาหรือผู้ใช้ภายนอก
- ข้อจำกัดของ เครือข่ายและIPก็เป็นส่วนหนึ่งของระบบป้องกันการดึงข้อมูลเช่นกัน เครื่องมือค้นหาไม่สามารถถูกหลอกได้ง่ายๆ โดยการเปลี่ยน IP อื่น ในขณะที่การใช้พร็อกซีเป็นส่วนสำคัญอย่างยิ่งในการดึงข้อมูลให้สำเร็จ ความหลากหลายและประวัติการใช้งานที่ไม่เหมาะสมของ IP ก็มีความสำคัญเช่นกัน
- สามารถบันทึกที่อยู่ IP และเครือข่าย IP ที่กระทำผิดลงในฐานข้อมูลบัญชีดำได้อย่างง่ายดาย เพื่อตรวจจับผู้กระทำผิดได้รวดเร็วยิ่งขึ้น เนื่องจากผู้ให้บริการอินเทอร์เน็ตส่วนใหญ่ให้ที่อยู่ IP แบบไดนามิกแก่ลูกค้า การแบนอัตโนมัติดังกล่าวจึงควรเป็นเพียงชั่วคราว และไม่ควรบล็อกผู้ใช้ที่ไม่เกี่ยวข้อง
- การตรวจจับตามพฤติกรรมเป็นระบบป้องกันที่ยากที่สุด เครื่องมือค้นหาให้บริการหน้าเว็บแก่ผู้ใช้หลายล้านคนทุกวัน ซึ่งทำให้มีข้อมูลพฤติกรรมจำนวนมาก สคริปต์หรือบอทที่ทำการคัดลอกข้อมูลไม่ได้มีพฤติกรรมเหมือนผู้ใช้จริง นอกเหนือจากเวลาการเข้าถึงที่ไม่ปกติ ความล่าช้า และเวลาเซสชันแล้ว คำหลักที่ถูกรวบรวมอาจมีความสัมพันธ์กันหรือมีพารามิเตอร์ที่ผิดปกติ ตัวอย่างเช่น Google มีระบบวิเคราะห์พฤติกรรมที่ซับซ้อนมาก อาจใช้ ซอฟต์แวร์ การเรียนรู้เชิงลึกเพื่อตรวจจับรูปแบบการเข้าถึงที่ผิดปกติ สามารถตรวจจับกิจกรรมที่ผิดปกติได้เร็วกว่าเครื่องมือค้นหาอื่นๆ[ 2 ]
- โครงสร้าง HTMLเปลี่ยนแปลงไป ขึ้นอยู่กับวิธีการที่ใช้ในการดึงข้อมูลจากเว็บไซต์ แม้แต่การเปลี่ยนแปลงเล็กน้อยในข้อมูล HTML ก็อาจทำให้เครื่องมือดึงข้อมูลใช้งานไม่ได้จนกว่าจะมีการอัปเดต
- การเปลี่ยนแปลงทั่วไปในระบบตรวจจับ ในช่วงหลายปีที่ผ่านมา เครื่องมือค้นหาได้ปรับปรุงระบบตรวจจับให้เข้มงวดขึ้นเกือบทุกเดือน ทำให้การดึงข้อมูลที่เชื่อถือได้ทำได้ยากขึ้นเรื่อยๆ เนื่องจากนักพัฒนาจำเป็นต้องทดลองและปรับโค้ดของตนอย่างสม่ำเสมอ[ 3 ]
การตรวจจับ
เมื่อระบบป้องกันของเครื่องมือค้นหาคิดว่าการเข้าถึงอาจเป็นไปโดยอัตโนมัติ เครื่องมือค้นหาอาจตอบสนองแตกต่างออกไป
ชั้นป้องกันแรกคือหน้า captcha [ 4 ]ซึ่งผู้ใช้จะต้องยืนยันว่าเป็นบุคคลจริง ไม่ใช่บอทหรือเครื่องมือ การแก้captchaจะสร้างคุกกี้ที่อนุญาตให้เข้าถึงเครื่องมือค้นหาได้อีกครั้งในช่วงเวลาหนึ่ง หลังจากนั้นประมาณหนึ่งวัน หน้า captcha จะแสดงขึ้นอีกครั้ง
ระบบป้องกันชั้นที่สองคือหน้าแสดงข้อผิดพลาดที่คล้ายกัน แต่ไม่มี CAPTCHA ในกรณีเช่นนี้ ผู้ใช้จะไม่สามารถใช้งานเครื่องมือค้นหาได้เลย จนกว่าการบล็อกชั่วคราวจะถูกยกเลิก หรือผู้ใช้เปลี่ยนที่อยู่ IP ของตน
มาตรการป้องกันชั้นที่สามคือการบล็อก ส่วนเครือข่ายทั้งหมดในระยะยาวGoogle ได้บล็อกเครือข่ายขนาดใหญ่เป็นเวลาหลายเดือน การบล็อกประเภทนี้มักถูกกระตุ้นโดยผู้ดูแลระบบ และจะเกิดขึ้นก็ต่อเมื่อเครื่องมือดึงข้อมูลส่งคำขอจำนวนมากเป็นพิเศษเท่านั้น
รูปแบบการตรวจจับทั้งหมดนี้อาจเกิดขึ้นกับผู้ใช้ทั่วไปได้เช่นกัน โดยเฉพาะผู้ใช้ที่ใช้ที่อยู่ IP หรือคลาสเครือข่ายเดียวกัน (ทั้งช่วง IPv4 และIPv6 )
วิธีการขูด
การจะดึงข้อมูลจากเครื่องมือค้นหาได้อย่างประสบความสำเร็จนั้น ปัจจัยหลักสองประการคือ เวลาและปริมาณ
ยิ่งผู้ใช้ต้องการดึงข้อมูลคีย์เวิร์ดจำนวนมาก และเวลาที่ใช้ในการทำงานน้อยลงเท่าใด การดึงข้อมูลก็จะยิ่งยากขึ้นเท่านั้น และสคริปต์หรือเครื่องมือที่ใช้ในการดึงข้อมูลก็จะยิ่งต้องได้รับการพัฒนามากขึ้นเท่านั้น
สคริปต์การดึงข้อมูลจำเป็นต้องเอาชนะความท้าทายทางเทคนิคบางประการ[ 5 ]
- ใช้การหมุนเวียน IP ร่วมกับพร็อกซี พร็อกซีเหล่านี้ควรเป็นพร็อกซีเฉพาะ (ไม่ใช้ร่วมกับผู้อื่น) และต้องไม่ถูกขึ้นบัญชีดำใดๆ
- การบริหารเวลาอย่างเหมาะสม ระยะเวลาระหว่างการเปลี่ยนคีย์เวิร์ด การแบ่งหน้า รวมถึงการหน่วงเวลาที่ถูกต้อง จะช่วยให้ได้อัตราการดึงข้อมูลที่มีประสิทธิภาพในระยะยาว โดยอาจแตกต่างกันไปตั้งแต่ 3-5 คำขอ (คีย์เวิร์ดหรือหน้า) ต่อชั่วโมง ไปจนถึง 100 คำขอขึ้นไปต่อชั่วโมง สำหรับแต่ละที่อยู่ IP/พร็อกซีที่ใช้งานอยู่ คุณภาพของ IP วิธีการดึงข้อมูล คีย์เวิร์ดที่ร้องขอ และภาษา/ประเทศที่ร้องขอ ล้วนส่งผลต่ออัตราสูงสุดที่เป็นไปได้
- การจัดการพารามิเตอร์ URL คุกกี้ และ ส่วนหัว HTTP อย่างถูกต้อง เพื่อจำลองการใช้งานเบราว์เซอร์ทั่วไปของผู้ใช้
- การแยกวิเคราะห์ โครงสร้าง HTML (การดึง URL คำอธิบาย อันดับการจัดอันดับ ลิงก์เว็บไซต์ และข้อมูลอื่นๆ ที่เกี่ยวข้องจากโค้ด HTML)
- การจัดการข้อผิดพลาด การตอบสนองอัตโนมัติเมื่อเจอแคปชาหรือหน้าบล็อก และการตอบสนองที่ผิดปกติอื่นๆ
ภาษาโปรแกรม
ในการพัฒนาโปรแกรมดึงข้อมูลสำหรับเครื่องมือค้นหา สามารถใช้ภาษาโปรแกรมได้เกือบทุกภาษา อย่างไรก็ตาม ขึ้นอยู่กับข้อกำหนดด้านประสิทธิภาพ ภาษาบางภาษาอาจเหมาะสมกว่า
PHPเป็นภาษาที่นิยมใช้กันทั่วไปในการเขียนสคริปต์สำหรับการดึงข้อมูลจากเว็บไซต์หรือบริการแบ็กเอนด์ เนื่องจากมีคุณสมบัติที่ทรงพลังในตัว (เช่น ตัวแยกวิเคราะห์ DOM, libcURL) นอกจากนี้ Ruby on RailsและPythonก็ถูกใช้บ่อยในการทำงานอัตโนมัติเกี่ยวกับการดึงข้อมูลเช่นกัน
นอกจากนี้ ยัง สามารถใช้ สคริปต์ Bashร่วมกับ cURL เป็นเครื่องมือบรรทัดคำสั่งเพื่อดึงข้อมูลจากเครื่องมือค้นหาได้ อีกด้วย
ถูกกฎหมาย
เมื่อทำการคัดลอกเว็บไซต์และบริการต่างๆ ส่วนทางกฎหมายมักเป็นข้อกังวลใหญ่สำหรับบริษัทต่างๆ สำหรับการคัดลอกเว็บนั้นขึ้นอยู่กับประเทศที่ผู้ใช้/บริษัทที่ทำการคัดลอกตั้งอยู่ รวมถึงข้อมูลหรือเว็บไซต์ที่กำลังคัดลอกด้วย โดยมีคำตัดสินของศาลที่แตกต่างกันมากมายทั่วโลก[ 6 ] [ 7 ]
อย่างไรก็ตาม เมื่อพูดถึงการคัดลอกข้อมูลจากเครื่องมือค้นหา สถานการณ์จะแตกต่างออกไป เครื่องมือค้นหาโดยทั่วไปจะไม่แสดงทรัพย์สินทางปัญญา แต่จะเพียงแค่ทำซ้ำหรือสรุปข้อมูลที่คัดลอกมาจากเว็บไซต์อื่นเท่านั้น
เหตุการณ์การคัดลอกข้อมูลจากเครื่องมือค้นหาที่ใหญ่ที่สุดเท่าที่ทราบกันเกิดขึ้นในปี 2011 เมื่อ Microsoft ถูกจับได้ว่าคัดลอกคำหลักที่ไม่รู้จักจาก Google สำหรับบริการ Bing ของตนเอง[ 8 ]แต่แม้แต่เหตุการณ์นี้ก็ไม่ได้นำไปสู่การฟ้องร้องในศาล