29 คะแนน โดย xguru 2021-11-29 | 12 ความคิดเห็น | แชร์ทาง WhatsApp
  • หากคุณสร้างบริการที่ต้องรันการค้นหาบน Google หลายล้านครั้ง ก็จำเป็นต้องมีทางเลือกที่ไม่โดนบล็อก

  • วิธีที่ง่ายที่สุดคือใช้พร็อกซีแบบเสียเงิน แต่ราคาค่อนข้างแพง

→ เลยกลายเป็นบทความน่าสนุกที่ผู้เขียนอธิบายอย่างละเอียดถึงสิ่งที่ตัวเองได้ลองทำ

  • ช่วงแรกใช้ AWS Lambda + Puppeteer

→ AWS มีให้บริการ 16 รีเจียนทั่วโลก และเมื่อรัน Lambda 3 ครั้งก็จะได้ IP ใหม่

→ ถ้ารัน Lambda พร้อมกัน 1000 ตัว จะได้ใช้ public IP ประมาณ 250 ตัว

โฆษณา

→ 16 รีเจียน * 250 ก็เท่ากับ 4000 IP และระดับนี้ก็เพียงพอสำหรับการค้นหา Google ระดับหลายล้านครั้งต่อสัปดาห์

→ เคยลองใช้บน GCP ด้วย แต่ขำตรงที่ Google บล็อก IP คลาวด์ของตัวเองหนักกว่า AWS เสียอีก

→ เรื่องนี้เป็นข้อมูลช่วงปี 2019~2020 และตอนนี้อาจเปลี่ยนไปแล้ว

  • วิธีนี้ใช้สแครป Google/Bing/Amazon ได้ แต่ก็มีข้อจำกัด

→ ถ้าอีกฝั่งใช้บริษัท anti-bot อย่าง DataDome, Akamai, Imperva ก็ใช้ไม่ได้

→ พวกเขาตรวจจับว่าเป็นบอตหรือไม่ผ่าน browser fingerprinting ได้หลากหลายมาก

→ เช่น Google Picasso, Font/TLS/WebGL Fingerprinting..

โฆษณา

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

  • โครงสร้างพื้นฐานสำหรับสแครปที่ตรวจจับได้ยากและขยายระบบได้

→ กฎสองข้อสำหรับการสแครปให้สำเร็จ

  1. อย่าปลอมการตั้งค่าเบราว์เซอร์

  2. ที่สำคัญที่สุดคือ ให้ปลอมการตั้งค่าเบราว์เซอร์เฉพาะเมื่อ "ไม่มีใครสังเกตได้" เท่านั้น

โฆษณา

→ ด้วยเหตุนี้ ข้อสรุปคือวิธีที่ดีที่สุดคือ "ใช้อุปกรณ์จริง" ไปเลย

⇨ ซื้ออุปกรณ์ Android ราคาถูก 500 เครื่องจากผู้ผลิตหลายเจ้า และสมัครแพ็กเกจดาต้าราคาประหยัด

⇨ กระจายติดตั้งไว้หลายเมือง (ใกล้เสาสัญญาณ)

⇨ ใช้โอเพนซอร์สอย่าง DeviceFarmer/stf เพื่อควบคุมอุปกรณ์พร้อมกัน

⇨ ติดตั้ง OS แบบเบาอย่าง Android Go และตั้งให้เข้าโหมดเครื่องบินทุก 5 นาทีเพื่อรับ IP ใหม่ตลอดเวลา

⇨ "4G carrier grade NAT" : NAT ระดับผู้ให้บริการ 4G เป็นวิธีที่ออกแบบมาเพื่อแก้ปัญหา IPv4 ไม่พอใช้ ทำให้มีผู้ใช้แชร์ IP เดียวกันได้หลายแสนราย จึงแทบเป็นไปไม่ได้ที่จะบล็อก

→ แต่ก็มีความยุ่งยากมาก ทั้งต้องซื้ออุปกรณ์ Android 500 เครื่อง ต้องมีสถานที่ติดตั้ง และต้องดูแลบำรุงรักษาฮาร์ดแวร์

โฆษณา
  • การปรับปรุง: จำลอง Android

→ แทนที่จะซื้ออุปกรณ์ Android ถ้าใช้ Android-X8, Bluestacks, Android Studio Emulator จะเป็นอย่างไร?

→ Proxidize ช่วยให้สร้าง 4G mobile proxy ได้

→ ติดตั้ง 4G dongle 50 ตัวในเซิร์ฟเวอร์หนึ่งเครื่อง

→ จำลองอุปกรณ์ Android 50~100 เครื่องบนแต่ละเซิร์ฟเวอร์

→ ติดตั้งสเตชันแบบนี้ไว้ใน 5 เมือง

→ จัดการสเตชันเหล่านี้ด้วยคำสั่งที่แข็งแรงมั่นคง

12 ความคิดเห็น

 
xguru 2021-12-06
  • การหลบเลี่ยงการตรวจจับบอท : วิธีทำเว็บสแครปโดยไม่โดนบล็อก https://th.news.hada.io/topic?id=5304

พร็อกซี บริการสแครปปิง ซอฟต์แวร์ป้องกันแอนติบอท ฯลฯ ได้สรุปไว้เป็นอย่างดีในบทความด้านบน

 
eajrezz 2021-12-06

เป็นการแฮ็กที่เจ๋งมากเลย!

 
joone 2021-12-04

https://www.diffbot.com/products/crawl/

ยังมีบริการที่ทำการ crawling และ scraping หน้าเว็บให้ด้วย ข้อมูลที่ scrape มาได้จะตัดข้อมูลที่ไม่จำเป็นออกและบันทึกเป็น JSON

 
benjamin 2021-11-29

อ้าปากค้าง...

 
xguru 2021-11-29

เป็นอีกเรื่องหนึ่งเลยนะ..

ก็มีที่อย่าง https://serpapi.com/ ซึ่งเอา Google Search มาทำเป็น API แล้วขายด้วย

แต่ที่นี่เขาเอา Naver Search มาทำเป็น API แล้วขายด้วยเหมือนกัน 555

https://serpapi.com/naver-search-api

ราคาเหลือเชื่อ? ที่ $250 สำหรับการค้นหา 30,000 ครั้งต่อเดือน

 
v08zbv8fvlkjasdflkj 2021-11-29

มันน่าตกใจเพราะแพงมากเกินไปงั้นเหรอ? ผมยังนึกภาพไม่ค่อยออกครับ

 
xguru 2021-11-29

ใช่ครับ แพงมากเลย เมื่อเทียบกับการใช้พร็อกซีแบบเสียเงินอะไรทำนองนั้น

แต่เพราะเป็น API ก็เลยใช้งานได้สะดวกโดยไม่ต้องกังวลว่าจะโดนบล็อก

 
hentol 2021-11-29

ถ้าอิงตามในประเทศ ก็นึกถึงแพ็กเกจมือถือราคาประหยัด 0 วอนที่มีการให้ดาต้าอยู่พอสมควรเหมือนกันนะครับ...

แต่พอสมัครจำนวนมากได้ยาก แบบนี้ก็คงลำบากเหมือนกันครับ

 
xguru 2021-11-29

ในกรณีของ Google Fi สามารถเพิ่มซิมดาต้าได้สูงสุด 4 ซิมต่อ 1 หมายเลข ดังนั้นวิธีแบบนี้ก็น่าจะเป็นอีกทางเลือกได้เหมือนกัน

 
nallwhy 2021-11-29

เมื่อก่อนตอนสแครปอะไรบางอย่างจาก naver

จำได้ว่าใช้บน AWS Lambda ไม่ได้ แต่ใช้บน GCP Functions ได้

เลยคิดว่าน่าจะเป็นเพราะเปิด IP range ไว้ แต่ดูเหมือนจะไม่ใช่อย่างนั้นเหมือนกันนะครับ

 
honore 2021-11-29

ผมทำแบบวิธีที่ 1 อยู่แล้ว เลยเข้ามาดูว่ามีวิธีอื่นอะไรอีกบ้าง แต่ไม่เคยนึกถึงเลยจริงๆ ครับ..

 
xguru 2021-11-29

จริงๆ แล้ว Lambda+Puppeteer แบบข้อ 1 ถ้าทำด้วยวิธีนั้นก็น่าจะโอเคอยู่เหมือนกัน

แต่ถ้าเทียบกับวิธี Proxidize ที่อยู่ท้ายบทความ ก็น่าจะมีความต่างด้านต้นทุนตามขนาดของงานสแครปน่าจะพอสมควร

ยิ่งต้องการปริมาณมากเท่าไร Proxidize ก็น่าจะเสถียรกว่า แต่ถ้าต้องการทำแบบง่ายๆ ข้อ 1 ก็ดูไม่เลวเหมือนกัน

https://proxidize.com/ ที่แนะนำไว้ท้ายบทความนี่น่าสนใจดีนะ

เป็นโซลูชันฮาร์ดแวร์+ซอฟต์แวร์ที่ช่วยให้สร้างและจัดการ 4G mobile proxy ได้เอง

รุ่น 5 dongles ราคา $399 นะ ดูจากรายชื่อประเทศของผู้ใช้ที่มีเกาหลีใต้ด้วย ก็น่าจะใช้งานได้มั้ง?

แม้จะไม่ถึงระดับ CGNAT แต่ก็มีโซลูชันอย่าง Scrapoxy ที่ใช้จัดการ software proxy pool ได้เหมือนกัน