การทำเว็บสแครปในระดับขนาดใหญ่
(incolumitas.com)<p>- หากคุณสร้างบริการที่ต้องรันการค้นหาบน Google หลายล้านครั้ง ก็จำเป็นต้องมีทางเลือกที่ไม่โดนบล็อก<br />
- วิธีที่ง่ายที่สุดคือใช้พร็อกซีแบบเสียเงิน แต่ราคาค่อนข้างแพง <br />
→ เลยกลายเป็นบทความน่าสนุกที่ผู้เขียนอธิบายอย่างละเอียดถึงสิ่งที่ตัวเองได้ลองทำ<br />
<br />
- ช่วงแรกใช้ AWS Lambda + Puppeteer <br />
→ AWS มีให้บริการ 16 รีเจียนทั่วโลก และเมื่อรัน Lambda 3 ครั้งก็จะได้ IP ใหม่ <br />
→ ถ้ารัน Lambda พร้อมกัน 1000 ตัว จะได้ใช้ public IP ประมาณ 250 ตัว<br />
→ 16 รีเจียน * 250 ก็เท่ากับ 4000 IP และระดับนี้ก็เพียงพอสำหรับการค้นหา Google ระดับหลายล้านครั้งต่อสัปดาห์ <br />
→ เคยลองใช้บน GCP ด้วย แต่ขำตรงที่ Google บล็อก IP คลาวด์ของตัวเองหนักกว่า AWS เสียอีก<br />
→ เรื่องนี้เป็นข้อมูลช่วงปี 2019~2020 และตอนนี้อาจเปลี่ยนไปแล้ว <br />
<br />
- วิธีนี้ใช้สแครป Google/Bing/Amazon ได้ แต่ก็มีข้อจำกัด<br />
→ ถ้าอีกฝั่งใช้บริษัท anti-bot อย่าง DataDome, Akamai, Imperva ก็ใช้ไม่ได้ <br />
→ พวกเขาตรวจจับว่าเป็นบอตหรือไม่ผ่าน browser fingerprinting ได้หลากหลายมาก<br />
→ เช่น Google Picasso, Font/TLS/WebGL Fingerprinting..<br />
→ จริง ๆ แล้วบริการสแครปขนาดใหญ่ส่วนมากใช้คลาวด์ + คอนเทนเนอร์ Docker จึงถูกระบุตัวได้ง่าย<br />
<br />
- โครงสร้างพื้นฐานสำหรับสแครปที่ตรวจจับได้ยากและขยายระบบได้ <br />
→ กฎสองข้อสำหรับการสแครปให้สำเร็จ <br />
1. อย่าปลอมการตั้งค่าเบราว์เซอร์ <br />
2. ที่สำคัญที่สุดคือ ให้ปลอมการตั้งค่าเบราว์เซอร์เฉพาะเมื่อ "ไม่มีใครสังเกตได้" เท่านั้น<br />
→ ด้วยเหตุนี้ ข้อสรุปคือวิธีที่ดีที่สุดคือ "ใช้อุปกรณ์จริง" ไปเลย<br />
⇨ ซื้ออุปกรณ์ Android ราคาถูก 500 เครื่องจากผู้ผลิตหลายเจ้า และสมัครแพ็กเกจดาต้าราคาประหยัด<br />
⇨ กระจายติดตั้งไว้หลายเมือง (ใกล้เสาสัญญาณ)<br />
⇨ ใช้โอเพนซอร์สอย่าง DeviceFarmer/stf เพื่อควบคุมอุปกรณ์พร้อมกัน <br />
⇨ ติดตั้ง OS แบบเบาอย่าง Android Go และตั้งให้เข้าโหมดเครื่องบินทุก 5 นาทีเพื่อรับ IP ใหม่ตลอดเวลา<br />
⇨ "4G carrier grade NAT" : NAT ระดับผู้ให้บริการ 4G เป็นวิธีที่ออกแบบมาเพื่อแก้ปัญหา IPv4 ไม่พอใช้ ทำให้มีผู้ใช้แชร์ IP เดียวกันได้หลายแสนราย จึงแทบเป็นไปไม่ได้ที่จะบล็อก<br />
→ แต่ก็มีความยุ่งยากมาก ทั้งต้องซื้ออุปกรณ์ Android 500 เครื่อง ต้องมีสถานที่ติดตั้ง และต้องดูแลบำรุงรักษาฮาร์ดแวร์ <br />
<br />
- การปรับปรุง: จำลอง Android <br />
→ แทนที่จะซื้ออุปกรณ์ Android ถ้าใช้ Android-X8, Bluestacks, Android Studio Emulator จะเป็นอย่างไร?<br />
→ Proxidize ช่วยให้สร้าง 4G mobile proxy ได้<br />
→ ติดตั้ง 4G dongle 50 ตัวในเซิร์ฟเวอร์หนึ่งเครื่อง<br />
→ จำลองอุปกรณ์ Android 50~100 เครื่องบนแต่ละเซิร์ฟเวอร์ <br />
→ ติดตั้งสเตชันแบบนี้ไว้ใน 5 เมือง <br />
→ จัดการสเตชันเหล่านี้ด้วยคำสั่งที่แข็งแรงมั่นคง </p>
12 ความคิดเห็น