29 คะแนน โดย xguru 2021-11-29 | 12 ความคิดเห็น | แชร์ทาง WhatsApp
<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 ความคิดเห็น

 
xguru 2021-12-06
<p>- การหลบเลี่ยงการตรวจจับบอท : วิธีทำเว็บสแครปโดยไม่โดนบล็อก https://th.news.hada.io/topic?id=5304<br /> <br /> พร็อกซี บริการสแครปปิง ซอฟต์แวร์ป้องกันแอนติบอท ฯลฯ ได้สรุปไว้เป็นอย่างดีในบทความด้านบน</p>
 
eajrezz 2021-12-06
<p>เป็นการแฮ็กที่เจ๋งมากเลย!</p>
 
joone 2021-12-04
<p>https://www.diffbot.com/products/crawl/<br /> <br /> ยังมีบริการที่ทำการ crawling และ scraping หน้าเว็บให้ด้วย ข้อมูลที่ scrape มาได้จะตัดข้อมูลที่ไม่จำเป็นออกและบันทึกเป็น JSON</p>
 
benjamin 2021-11-29
<p>อ้าปากค้าง...</p>
 
xguru 2021-11-29
<p>เป็นอีกเรื่องหนึ่งเลยนะ.. <br /> <br /> ก็มีที่อย่าง https://serpapi.com/ ซึ่งเอา Google Search มาทำเป็น API แล้วขายด้วย <br /> แต่ที่นี่เขาเอา Naver Search มาทำเป็น API แล้วขายด้วยเหมือนกัน 555<br /> https://serpapi.com/naver-search-api<br /> <br /> ราคาเหลือเชื่อ? ที่ $250 สำหรับการค้นหา 30,000 ครั้งต่อเดือน</p>
 
v08zbv8fvlkjasdflkj 2021-11-29
<p>มันน่าตกใจเพราะแพงมากเกินไปงั้นเหรอ? ผมยังนึกภาพไม่ค่อยออกครับ</p>
 
xguru 2021-11-29
<p>ใช่ครับ แพงมากเลย เมื่อเทียบกับการใช้พร็อกซีแบบเสียเงินอะไรทำนองนั้น<br /> แต่เพราะเป็น API ก็เลยใช้งานได้สะดวกโดยไม่ต้องกังวลว่าจะโดนบล็อก</p>
 
hentol 2021-11-29
<p>ถ้าอิงตามในประเทศ ก็นึกถึงแพ็กเกจมือถือราคาประหยัด 0 วอนที่มีการให้ดาต้าอยู่พอสมควรเหมือนกันนะครับ...<br /> แต่พอสมัครจำนวนมากได้ยาก แบบนี้ก็คงลำบากเหมือนกันครับ</p>
 
xguru 2021-11-29
<p>ในกรณีของ Google Fi สามารถเพิ่มซิมดาต้าได้สูงสุด 4 ซิมต่อ 1 หมายเลข ดังนั้นวิธีแบบนี้ก็น่าจะเป็นอีกทางเลือกได้เหมือนกัน</p>
 
nallwhy 2021-11-29
<p>เมื่อก่อนตอนสแครปอะไรบางอย่างจาก naver<br /> จำได้ว่าใช้บน AWS Lambda ไม่ได้ แต่ใช้บน GCP Functions ได้<br /> เลยคิดว่าน่าจะเป็นเพราะเปิด IP range ไว้ แต่ดูเหมือนจะไม่ใช่อย่างนั้นเหมือนกันนะครับ</p>
 
honore 2021-11-29
<p>ผมทำแบบวิธีที่ 1 อยู่แล้ว เลยเข้ามาดูว่ามีวิธีอื่นอะไรอีกบ้าง แต่ไม่เคยนึกถึงเลยจริงๆ ครับ..</p>
 
xguru 2021-11-29
<p>จริงๆ แล้ว Lambda+Puppeteer แบบข้อ 1 ถ้าทำด้วยวิธีนั้นก็น่าจะโอเคอยู่เหมือนกัน<br /> แต่ถ้าเทียบกับวิธี Proxidize ที่อยู่ท้ายบทความ ก็น่าจะมีความต่างด้านต้นทุนตามขนาดของงานสแครปน่าจะพอสมควร<br /> ยิ่งต้องการปริมาณมากเท่าไร Proxidize ก็น่าจะเสถียรกว่า แต่ถ้าต้องการทำแบบง่ายๆ ข้อ 1 ก็ดูไม่เลวเหมือนกัน <br /> <br /> https://proxidize.com/ ที่แนะนำไว้ท้ายบทความนี่น่าสนใจดีนะ <br /> เป็นโซลูชันฮาร์ดแวร์+ซอฟต์แวร์ที่ช่วยให้สร้างและจัดการ 4G mobile proxy ได้เอง<br /> รุ่น 5 dongles ราคา $399 นะ ดูจากรายชื่อประเทศของผู้ใช้ที่มีเกาหลีใต้ด้วย ก็น่าจะใช้งานได้มั้ง?<br /> <br /> แม้จะไม่ถึงระดับ CGNAT แต่ก็มีโซลูชันอย่าง Scrapoxy ที่ใช้จัดการ software proxy pool ได้เหมือนกัน<br /> - Scrapoxy - เครื่องมือจัดการ proxy pool สำหรับเว็บครอว์เลอร์ https://th.news.hada.io/topic?id=2308</p&gt;