สถาปัตยกรรมเว็บครอว์เลอร์
(velog.io)-
ตลอดเวลาที่ผ่านมา เว็บครอว์เลอร์จำนวนมากที่ถูกแนะนำบนอินเทอร์เน็ต แท้จริงแล้วส่วนใหญ่เป็น 'สแครปเปอร์' มากกว่าจะเรียกว่าเป็นครอว์เลอร์ได้
-
ผู้เขียนกำลังแนะนำงานวิจัยที่นิยามเว็บครอว์เลอร์แบบย่อ ๆ
-
ครอว์เลอร์คือแอปพลิเคชันที่ท่องไปในโลกอินเทอร์เน็ตแบบ BFS, DFS
-
กฎของโรบอตเป็นประเด็นที่สำคัญมากถึงขั้นกำหนดภาพลักษณ์ของบริษัทได้ แต่ก็ยังมีสตาร์ตอัปจำนวนมากที่ไม่รู้เรื่องนี้
4 ความคิดเห็น
ปีที่แล้วพอได้อ่านบทความของคนนี้แล้วก็รู้สึกว่า ทำไมถึงมองโลกในแง่ค่อนข้างคดเคี้ยวขนาดนั้นนะ แต่ก็ไม่รู้ว่าอย่างน้อยตอนนี้จะดีขึ้นบ้างหรือยัง
ถ้าจะพูดกันตามความเป็นจริง เว้นเสียแต่ว่าคุณจะเป็นคนจากบริษัทใหญ่ที่ทำระบบเสิร์ชเอนจินอยู่จริง ๆ...
ต่อให้ใช้ crawler ก็ตาม ในสาย text mining ถ้าไม่ใช่ภาษาอังกฤษ ต้นทุนในการทำ preprocessing จะสูงมาก ดังนั้น crawler แบบนั้นก็ยากจะดึงข้อมูลคุณภาพดีออกมาได้ ส่วนสาย image processing ก็มี dataset คุณภาพดีให้ใช้กันอยู่ดาษดื่นอยู่แล้ว เลยไม่มีเหตุผลจำเป็นต้องมานั่งทำ crawler เองหรอก ไม่ใช่ว่าทฤษฎีดี ๆ แบบนั้นไม่มีค่า แต่ที่ scraper เต็มตลาดก็เพราะมันไม่คุ้มค่ากับความลำบากที่ต้องแลกมาเท่านั้นเอง
สิ่งที่เขาเรียกว่า crawler แบบสมบูรณ์นั้น ต่อให้ในเชิงทฤษฎีจะดูดี สุดท้ายก็เป็นแค่การดึงข้อมูลออกมาด้วยความน่าจะเป็นที่สูงขึ้นเล็กน้อยเท่านั้น เลยกลายเป็นของก้ำกึ่งที่เอาไปใช้กับงานพวก AI สมัยนี้ได้ยาก ค่าดูแลก็ไม่ได้ถูก ข้อมูลที่ดึงออกมาก็ไม่ได้สมบูรณ์ การจัดการก็ยาก แถมยังมีปัญหาทางกฎหมายอีกเยอะ ถ้าบุคคลหรือบริษัทต้องคิดถึงปัญหาพวกนั้นทั้งหมด สู้เอา scraper สักไม่กี่ตัวไปรันกับเว็บใหญ่ ๆ ยังจะคุ้มกว่าเสียอีก scraper สำหรับเว็บใหญ่ที่วิเคราะห์และสร้างมาอย่างดีเพียงตัวเดียว ประหยัดและสะดวกกว่าการเที่ยวเข้าออกเว็บไร้ประโยชน์เป็นหมื่นเว็บอยู่หลายร้อยถึงหลายพันเท่า ถ้าจะทำ crawler ตัวเดียวให้ครอบคลุมกว้าง ๆ แบบ “ดี” จริง ต่อให้มีคนจบโทจบเอกมารุมช่วยก็ยังยาก ถ้าต้องถึงขั้น monitor crawler แล้วตามแก้ logic กันด้วยก็คงยิ่งสยดสยองไปอีก ขนาด log ก็คงมหาศาลจนต้องกระจายประมวลผลเหมือนกัน
แน่นอนว่าผมเห็นด้วยเต็มที่ว่า crawler เป็นรากฐานสำคัญและมีความสำคัญมาก แต่ก็อดคิดไม่ได้ว่าจำเป็นด้วยหรือที่จะยกประเด็นนี้มาพูดแบบแบ่งชนชั้นกับ scraper ตลอดทั้งปีแบบนั้น
ถึงตอนนี้ดูแล้วก็ยังไม่เข้าใจอยู่ดีว่าทำไมเขาถึงมองข้าม Scrapy อย่างน้อยไม่ว่าจะเป็น options หรือ extensions มันก็น่าจะมีมากกว่า gocolly อยู่มากทีเดียว
ก็แล้วแต่มุมมองของแต่ละคนนะ แต่ผมเองก็เป็นคนทำงานในทีมเก็บรวบรวม big data เหมือนกัน เลยขอฝากความเห็นตื้น ๆ ของตัวเองไว้ครับ
เห็นด้วยครับ
อาจเป็นเพราะว่ายังเป็นบทความที่เขียนไม่เสร็จ จึงมีอยู่หลายจุดที่ดูเหมือนขาดเนื้อหาบางอย่างที่ควรจะมีนะครับ
[Lambda Crawl] ที่กล่าวถึงในส่วนการจัดตารางการเข้าเยี่ยมซ้ำตรงกลางบทความ หมายถึงงานวิจัย Effective Page Refresh Policies For Web Crawlers ใช่ไหมครับ? เพราะพอลองค้นหาด้วยคีย์เวิร์ดนี้ ก็เจอแต่เรื่องทำนองว่าใช้ Lambda ซึ่งเป็นบริการ serverless ของ AWS มาทำการ crawl เต็มไปหมดน่ะครับ ทั้งที่ในรายการเอกสารอ้างอิงด้านล่างก็ดูเหมือนจะไม่มีงานวิจัยชิ้นนี้อยู่ด้วย…
http://ilpubs.stanford.edu:8090/604/1/2003-44.pdf
ดูเหมือนบทความวิจัยเรื่อง Tractable near-optimal policies for crawling จะถูกกล่าวถึงในนี้ด้วย