Web Crawler คืออะไร? คู่มือที่สมบูรณ์สำหรับนักพัฒนาและวิศวกรข้อมูล
เผยแพร่แล้ว: 2025-04-12ในจักรวาลที่กว้างใหญ่และขยายตัวของอินเทอร์เน็ตเครื่องมือค้นหาอย่าง Google รู้ว่ามีเนื้อหาอะไรบ้างและจะหาได้อย่างไร เข้าสู่ Web Crawler - Workhorse เงียบของเว็บสมัยใหม่ ไม่ว่าคุณจะเป็นนักพัฒนาซอฟต์แวร์ที่อยากรู้ว่าเนื้อหาของเครื่องมือค้นหาดัชนีหรือวิศวกรข้อมูลที่ได้รับมอบหมายให้แยกข้อมูลแบบเรียลไทม์จากเว็บไซต์อีคอมเมิร์ซทำความเข้าใจว่าการรวบรวมข้อมูลเว็บเป็นทักษะพื้นฐานอย่างไร
นักรวบรวมข้อมูลเว็บมักเรียกว่าแมงมุมหรือบอทเป็นโปรแกรมที่เรียกดูอินเทอร์เน็ตอย่างเป็นระบบเพื่อค้นหาดาวน์โหลดและวิเคราะห์เนื้อหาเว็บไซต์ ตัวรวบรวมข้อมูลมีความสำคัญต่อทุกสิ่งตั้งแต่การเพิ่มประสิทธิภาพกลไกค้นหา (SEO) และการสร้างตะกั่วไปจนถึงการวิเคราะห์ความเชื่อมั่นและการวิจัยเชิงวิชาการ
ในคู่มือนี้เราจะสำรวจกลไกที่อยู่เบื้องหลังการรวบรวมข้อมูลบนเว็บวิธีการสร้างโปรแกรมรวบรวมข้อมูลของคุณเองความหมายทางจริยธรรมและกฎหมายและเทคนิคขั้นสูงสำหรับการปรับขนาดและเพิ่มประสิทธิภาพการรวบรวมข้อมูลของคุณสำหรับแอปพลิเคชันโลกแห่งความเป็นจริง
มาดำน้ำกันเถอะ
รู้เบื้องต้นเกี่ยวกับการรวบรวมข้อมูลเว็บ
เหตุใดโปรแกรมรวบรวมข้อมูลเว็บจึงมีความสำคัญในเว็บสมัยใหม่
อินเทอร์เน็ตมีหน้าเว็บหลายพันล้าน โปรแกรมรวบรวมข้อมูลบนเว็บทำหน้าที่เป็น "ตัวทำดัชนี" ของโลกดิจิตอล งานของพวกเขาคือการสำรวจเว็บไซต์โดยอัตโนมัติรวบรวมเนื้อหาและจัดเก็บไว้เพื่อการวิเคราะห์หรือส่งต่อไปยังระบบอื่น ๆ เช่นเครื่องมือค้นหา
ตัวอย่างเช่น:
- Googlebot ดัชนีเนื้อหาเว็บเพื่อให้บริการผลการค้นหา
- แพลตฟอร์มข่าวกรองราคารวบรวมข้อมูลหน้าคู่แข่งทุกวัน
- สถาบันการศึกษารวบรวมข้อมูลคลังเก็บเว็บสำหรับการวิเคราะห์ความเชื่อมั่นและชุดข้อมูลการเรียนรู้ของเครื่อง
หากไม่มีตัวรวบรวมข้อมูลเราจะพึ่งพาการค้นพบด้วยตนเองหรือการเข้าถึงข้อมูลที่เงียบซึ่งเป็นผู้เริ่มต้นในโลกที่ขับเคลื่อนด้วยข้อมูลอย่างรวดเร็วในปัจจุบัน
Web Crawlers เทียบกับ Scrapers เว็บ - ความแตกต่างที่สำคัญ
ในขณะที่คำศัพท์มักใช้แทนกันได้ การรวบรวมข้อมูลเว็บ และ การขูดเว็บ เป็นกระบวนการที่แตกต่างกัน:
การคลานเว็บ | การขูดเว็บ |
ค้นพบและนำทางหน้าเว็บ | แยกข้อมูลจากหน้าค้นพบ |
มุ่งเน้นไปที่ URL และโครงสร้างไซต์ | มุ่งเน้นเนื้อหาที่เฉพาะเจาะจง (ข้อความราคาอีเมล ฯลฯ ) |
ตัวอย่าง: googlebot รวบรวมข้อมูลหลายพันล้านเว็บไซต์ | ตัวอย่าง: สคริปต์ขูดราคาผลิตภัณฑ์ |
ตัวรวบรวมข้อมูลเว็บอาจ ขูด แต่วัตถุประสงค์หลักคือการสำรวจและการจัดทำดัชนี
กรณีการใช้งานทั่วไปสำหรับการรวบรวมข้อมูลเว็บ
โปรแกรมรวบรวมข้อมูลเว็บเป็นเครื่องมือพื้นฐานในหลาย ๆ โดเมน - ไม่เพียง แต่สำหรับการตลาดหรือ SEO แต่สำหรับการวิจัยโครงสร้างพื้นฐานการฝึกอบรม AI และแม้กระทั่งความปลอดภัยทางไซเบอร์
- การจัดทำดัชนีเครื่องมือค้นหา
หลักการของแพลตฟอร์มเช่น Google และ Bing Index พันล้านหน้า ตัวรวบรวมข้อมูลค้นพบและประเมินเนื้อหาทั่วทั้งเว็บ - การวิจัยทางวิทยาศาสตร์และสถาบันการศึกษา
นักวิจัยรวบรวมข้อมูลคลังเก็บข่าวฟอรัมและโซเชียลมีเดียเพื่อสร้างชุดข้อมูลสำหรับการศึกษาภาษาศาสตร์การวิเคราะห์ความเชื่อมั่นหรือการติดตามทางระบาดวิทยา - การสร้างชุดข้อมูลการเรียนรู้ของเครื่องและ AI
ตัวรวบรวมข้อมูลรวบรวมข้อมูลที่มีโครงสร้าง/ไม่มีโครงสร้างเพื่อฝึกอบรมโมเดล NLP, chatbots, ตัวแยกประเภทภาพและระบบแนะนำ - ความปลอดภัยทางไซเบอร์และข่าวกรองการคุกคาม
ทีมรักษาความปลอดภัยใช้ตัวรวบรวมข้อมูลในการสแกนฟอรัมตลาดเว็บมืดหรือโครงสร้างพื้นฐานที่เปิดเผยสำหรับช่องโหว่และข้อมูลรับรองที่รั่วไหลออกมา - การรวมเนื้อหาและการค้นพบ
เครื่องมือเช่นเครื่องอ่าน RSS ที่เก็บรหัสหรือผู้รวบรวมข่าวรวบรวมข้อมูลแหล่งที่มาเพื่อรวบรวมการอัปเดตล่าสุด - การรวมข้อมูลระดับองค์กร
บริษัท รวบรวมข้อมูลระบบภายในอินทราเน็ตหรือพอร์ทัลผู้ขายเพื่อรวมข้อมูลที่กระจัดกระจายไว้ในแพลตฟอร์มการวิเคราะห์ส่วนกลาง - กราฟความรู้และการตกแต่งข้อมูลเมตา
ตัวรวบรวมข้อมูลรวบรวมและเชื่อมต่อข้อมูลที่มีโครงสร้างข้ามไซต์ (เช่นฐานข้อมูล บริษัท , ไดเรกทอรีแบบเปิด) กับเครื่องมือค้นหาหรือเครื่องมือแนะนำ
วิธีการรวบรวมข้อมูลบนเว็บ (ภายใต้ฮูด)
การทำความเข้าใจการทำงานภายในของนักรวบรวมข้อมูลเว็บเป็นสิ่งจำเป็นก่อนที่จะพยายามสร้าง ในขณะที่แนวคิดโดยรวมนั้นตรงไปตรงมา - การเยี่ยมชมหน้าเว็บและการดึงลิงก์ - สถาปัตยกรรมและการดำเนินการจริงเกี่ยวข้องกับชิ้นส่วนที่เคลื่อนไหวหลายอย่างที่ต้องทำงานร่วมกัน
วัฏจักรการรวบรวมข้อมูลอธิบาย
ในระดับสูงการรวบรวมข้อมูลเว็บจะติดตาม วนซ้ำที่ เรียกว่าวงจรการรวบรวมข้อมูล นี่คือวิธีการทำงานทีละขั้นตอน:
1. เริ่มต้นด้วย URL เมล็ดพันธุ์
ตัวรวบรวมข้อมูลเริ่มต้นด้วยจุดเริ่มต้นอย่างน้อยหนึ่งจุด-โดยทั่วไปแล้ว URL ระดับโดเมนเช่น https://example.com สิ่งเหล่านี้เรียกว่า URL ของเมล็ด
2. ส่งคำขอ HTTP
ตัวรวบรวมข้อมูลส่งคำขอ HTTP GET เพื่อดึงเนื้อหา HTML ของหน้าเมล็ด สตริงตัวแทนผู้ใช้มักจะรวมอยู่ในส่วนหัวคำขอเพื่อระบุตัวรวบรวมข้อมูล
3. แยกวิเคราะห์เนื้อหา HTML
เมื่อได้รับการตอบสนอง HTML แล้วจะแยกวิเคราะห์ข้อมูลที่เกี่ยวข้องและ - ที่สำคัญที่สุด - ไฮเปอร์ลิงก์ การแยกวิเคราะห์นี้มักจะทำโดยใช้ห้องสมุดเช่น BeautifulSoup , LXML หรือ Cheerio.js ขึ้นอยู่กับภาษาและสแต็คการรวบรวมข้อมูล
4. แยกและทำให้ลิงก์เป็นปกติ
ลิงก์ที่แยกทั้งหมด (<a href =””>) ถูกแปลงเป็น URL แบบสัมบูรณ์โดยใช้โดเมนพื้นฐาน เส้นทางสัมพัทธ์ได้รับการแก้ไขโดยใช้ urljoin หรือวิธีการเทียบเท่า
5. จัดเก็บหรือประมวลผลเนื้อหา
Crawler อย่างใดอย่างหนึ่ง:
- เก็บ HTML ดิบสำหรับการแยกวิเคราะห์ปลายน้ำ
- สารสกัดข้อมูลที่มีโครงสร้าง (เช่นชื่อเรื่องข้อมูลเมตา, ตาราง),
- หรือผลักไปยังไปป์ไลน์สำหรับการประมวลผล (เช่น Elasticsearch หรือฐานข้อมูล)
6. เพิ่มลิงค์ใหม่ไปยังคิว
ลิงค์ที่ถูกต้องและถูกต้องทั้งหมดจะถูกเพิ่มเข้าไปในคิวสำหรับการรวบรวมข้อมูลในอนาคต รอบนี้ทำซ้ำการเก็บรักษาบันทึก URL ที่เข้าชม
เคารพนโยบาย robots.txt และการรวบรวมข้อมูล
ก่อนที่จะรวบรวมข้อมูลไซต์ใด ๆ บอทที่รับผิดชอบจะตรวจสอบไฟล์ /robots.txt เพื่อตรวจสอบสิทธิ์ในการรวบรวมข้อมูลและเส้นทางที่ไม่อนุญาต เครื่องมือเช่น Robotparser ใน Python สามารถทำให้การปฏิบัติตามกฎระเบียบนี้เป็นไปโดยอัตโนมัติ
txt
คัดลอก
ผู้ใช้ตัวแทน: *
ไม่อนุญาต: /ส่วนตัว /
คลานล่าช้า: 5
- ไม่อนุญาต: ป้องกันไม่ให้ Crawler เข้าถึงไดเรกทอรีเฉพาะ
- รวบรวมข้อมูล: ขอความล่าช้าระหว่างคำขอเพื่อหลีกเลี่ยงการโอเวอร์โหลดเซิร์ฟเวอร์
สำคัญ : ไม่ใช่ทุกเว็บไซต์ที่บังคับใช้ robots.txt แต่ตัวรวบรวมข้อมูลจริยธรรมมักจะเชื่อฟังมัน
การจัดการการปนเปื้อนและการเลื่อนที่ไม่มีที่สิ้นสุด
เว็บไซต์ที่ทันสมัยใช้อินเทอร์เฟซการเลื่อนแบบ paginated หรือไม่มีที่สิ้นสุด ซอฟต์แวร์รวบรวมข้อมูลต้อง:
- รับรู้? page = 2, ออฟเซ็ต = 10, ฯลฯ ในพารามิเตอร์ URL
- จำลองพฤติกรรมการเลื่อนสำหรับหน้า JavaScript-Heavy (ใช้เบราว์เซอร์แบบไม่มีหัวเช่น Puppeteer)
- หลีกเลี่ยงการคลานเนื้อหาเดียวกันอีกครั้ง (ลูป pagination)
ความล้มเหลวในการจัดการการปนเปื้อนอย่างมีประสิทธิภาพอาจส่งผลให้ การรวบรวมเนื้อหาซ้ำ หรือ ครอบคลุมข้อมูลที่ไม่สมบูรณ์
ความสุภาพอัตราการ จำกัด และการควบคุมปริมาณ
ตัวรวบรวมข้อมูลจะต้องสุภาพ-โดยเฉพาะอย่างยิ่งเมื่อรวบรวมข้อมูลเว็บไซต์สาธารณะ
แนวทางปฏิบัติที่ดีที่สุด ได้แก่ :
- การร้องขอการควบคุมปริมาณ เพื่อหลีกเลี่ยงเซิร์ฟเวอร์ที่ล้นหลาม (เช่น 1-2 คำขอต่อวินาที)
- การเคารพส่วนหัวใหม่ใหม่ สำหรับ 429 หรือ 503 ข้อผิดพลาด
- การสุ่มตัวแทนผู้ใช้และช่วงเวลาการร้องขอ เพื่อจำลองพฤติกรรมตามธรรมชาติ
- การจัดตารางเวลา กระจายไปยังเวิร์กโหลด
การใช้งาน Time.SLEEP () ในซอฟต์แวร์รวบรวมข้อมูลแบบเธรดเดี่ยวหรือระบบ ถังโทเค็น ในแบบกระจายช่วยรักษาความสุภาพและป้องกันการแบน
เครื่องมือและเทคโนโลยีสำหรับการรวบรวมข้อมูลเว็บ
โปรแกรมรวบรวมข้อมูลเว็บสามารถสร้างขึ้นได้ในภาษาการเขียนโปรแกรมแทบทุกระบบ แต่ระบบนิเวศบางอย่างเป็นมิตรกับตัวรวบรวมข้อมูลมากกว่าคนอื่น ๆ เนื่องจากห้องสมุดที่แข็งแกร่งการจัดการ HTTP และเครื่องมือแยกวิเคราะห์
ภาษาการเขียนโปรแกรมยอดนิยมสำหรับการรวบรวมข้อมูลเว็บ
การเลือกภาษาที่เหมาะสมขึ้นอยู่กับความซับซ้อนความต้องการประสิทธิภาพและการสนับสนุนระบบนิเวศสำหรับโครงการของคุณ
งูหลาม
Python เป็นภาษาที่ได้รับความนิยมมากที่สุดสำหรับการคลานเว็บเนื่องจากระบบนิเวศที่เรียบง่ายและระบบนิเวศขนาดใหญ่
- ข้อดี: ไวยากรณ์ง่ายห้องสมุดกว้างใหญ่ (สวย ๆ , scrapy, คำขอ)
- ใช้กรณี: รวบรวมข้อมูลอย่างรวดเร็ว, การสร้างต้นแบบ, ท่อการสกัดข้อมูล
node.js
การรวบรวมข้อมูลที่ใช้ JavaScript เหมาะสำหรับการจัดการไซต์แบบไดนามิกที่พึ่งพาการเรนเดอร์ฝั่งไคลเอ็นต์
- ข้อดี: ยอดเยี่ยมสำหรับการโต้ตอบกับหน้า JS ที่แสดงโดยใช้ Puppeteer หรือ Playwright
- ใช้เคส: การรวบรวมข้อมูลเว็บแอพที่ทันสมัยระบบอัตโนมัติแบบไม่มีหัว
ชวา
ใช้สำหรับซอฟต์แวร์ซอฟต์แวร์ซอฟต์แวร์รวบรวมข้อมูลแบบมัลติเธรดหรือเครื่องมือวิจัยเชิงวิชาการ (เช่น Apache Nutch)
- ข้อดี: ความเร็วความเสถียรการจัดการด้าย
- ใช้เคส: ตัวรวบรวมข้อมูลเว็บขนาดใหญ่กระจาย
ไปและเป็นสนิม
ภาษาระบบที่ทันสมัยเช่น Go and Rust กำลังถูกนำมาใช้เพื่อความเร็วและประสิทธิภาพของทรัพยากร
- ใช้กรณี: เครื่องรวบรวมข้อมูลที่มีประสิทธิภาพสูงหรือหน่วยความจำที่ไวต่อหน่วยความจำ
ห้องสมุดที่สำคัญและเฟรมเวิร์ก
คำขอ + BeautifulSoup (Python)
- คำขอ จัดการการเชื่อมต่อ HTTP
- Parsep
ร่วมกันพวกเขาให้วิธีที่รวดเร็วและมีน้ำหนักเบาในการสร้างซอฟต์แวร์รวบรวมข้อมูลที่กำหนดเอง
งูหลาม
คัดลอก
นำเข้าคำขอ
จาก BS4 นำเข้า BeautifulSoup
Scrapy (Python)
กรอบการรวบรวมข้อมูลแบบอะซิงโครนัสแบบอะซิงโครนัส
- การจัดตารางการร้องขอในตัวการควบคุมปริมาณซ้ำซ้อนและท่อส่ง
- ยอดเยี่ยมสำหรับซอฟต์แวร์รวบรวมข้อมูลขนาดกลางถึงขนาดใหญ่
Puppeteer (node.js) / playwright (Node / Python)
เครื่องมืออัตโนมัติเบราว์เซอร์แบบไม่มีหัว
- สามารถรวบรวมข้อมูลหน้า JavaScript ได้
- รองรับภาพหน้าจอเหตุการณ์ผู้ใช้และอื่น ๆ
ซีลีเนียม
ใช้สำหรับการทดสอบอัตโนมัติ แต่ยังสามารถรวบรวมข้อมูลเว็บไซต์แบบไดนามิกโดยจำลองเบราว์เซอร์
- มักจะช้ากว่าทางเลือกที่ไม่มีหัว แต่เหมาะสำหรับการโต้ตอบกับรูปแบบและการนำทางที่ใช้ JS
การเลือกเครื่องมือที่เหมาะสมสำหรับงาน
ความต้องการ | เครื่องมือที่ดีที่สุด |
หน้า HTML แบบคงที่ | คำขอ + BeautifulSoup (Python) |
เนื้อหาที่เรนเดอร์ JS | Puppeteer นักเขียนบทละคร |
ซอฟต์แวร์รวบรวมข้อมูลที่ปรับขนาดได้ | Scrapy, Apache Nutch, Colly (GO) |
สารสกัดที่กำหนดเอง + แปลง | node.js + cheerio, python + lxml |
ระบบกระจาย | สแต็คที่กำหนดเองโดยใช้ Kafka, Celery, Redis |
เคล็ดลับสำหรับมืออาชีพ : หากไซต์เป้าหมายของคุณเปลี่ยนแปลงบ่อยครั้งหรือใช้การเรนเดอร์ JS, Scrapy + Playwright หรือ Puppeteer Hybrid Stack นั้นเหมาะอย่างยิ่ง
API Crawling กับการคลานเว็บ
บางครั้งการใช้ API สาธารณะของเว็บไซต์ดีกว่าการรวบรวมข้อมูล HTML
การคลานเว็บ | API คลาน |
แยกเนื้อหาจาก HTML ที่แสดงผล | เข้าถึงข้อมูลที่มีโครงสร้างโดยตรง |
มีแนวโน้มที่จะเปลี่ยนรูปแบบ | การกำหนดเวอร์ชันที่เสถียรและสคีมาตอบสนอง |
ช้าลงเนื่องจากการแยกวิเคราะห์และลองย้อนกลับ | มักจะเร็วขึ้นและเชื่อถือได้มากขึ้น |
หากข้อมูลที่คุณต้องการมีให้ผ่าน API ให้ใช้ก่อน - APIs มีความเสถียรมีประสิทธิภาพและเป็นที่ต้องการอย่างมีจริยธรรมมากขึ้น
คู่มือทีละขั้นตอน: การสร้างโปรแกรมรวบรวมข้อมูลเว็บแบบง่าย ๆ ใน Python
ส่วนนี้จะนำคุณไปสู่การสร้างตัวรวบรวมข้อมูลระดับเริ่มต้นถึงระดับเริ่มต้นโดยใช้ Python เราจะครอบคลุมการดึงหน้าการสกัดลิงก์และคลานไปหลายระดับลึก - ทั้งหมดในขณะที่จัดการกับข้อผิดพลาดพื้นฐานและการรักษาความสุภาพต่อเซิร์ฟเวอร์

หมายเหตุ: บทช่วยสอนนี้ง่ายขึ้นเพื่อการเรียนรู้ สำหรับซอฟต์แวร์รวบรวมข้อมูลในระดับการผลิตให้พิจารณาเฟรมเวิร์กเช่น การบดขยี้ หรือการตั้งค่าแบบกระจาย
การตั้งค่าสภาพแวดล้อมของคุณ
ก่อนเริ่มต้นตรวจสอบให้แน่ใจว่าคุณติดตั้ง Python 3.x แล้ว จากนั้นติดตั้งไลบรารีที่ต้องการ:
ทุบตี
คัดลอก
การติดตั้ง PIP ขอสวย ๆ
สร้างไฟล์ใหม่:
ทุบตี
คัดลอก
Touch Crawler.py
เขียนชุดข้อมูลชุดแรกของคุณ
มาทำลายตัวรวบรวมข้อมูลเป็นชิ้นส่วนแบบแยกส่วนกันเถอะ
นำเข้าไลบรารีที่จำเป็น
งูหลาม
คัดลอก
นำเข้าคำขอ
จาก BS4 นำเข้า BeautifulSoup
จาก urllib.parse import urljoin, urlparse
เวลานำเข้า
จัดการคำขอ HTTP เหล่านี้การแยกวิเคราะห์ HTML และการจัดการ URL
กำหนดฟังก์ชันการดึงหน้า
งูหลาม
คัดลอก
def fetch_page (url):
พยายาม:
Headers = {'User-Agent': 'CustomCrawler/1.0'}
response = requests.get (url, headers = ส่วนหัว, หมดเวลา = 10)
Response.raise_for_status ()
return response.text
ยกเว้นคำขอ requestException เป็น e:
พิมพ์ (f” [ข้อผิดพลาด] ล้มเหลวในการดึง {url}: {e}”)
ไม่กลับมา
- ใช้สตริงตัวแทนผู้ใช้ที่กำหนดเอง
- รวมถึงการหมดเวลาเพื่อป้องกันการแขวน
- จัดการข้อผิดพลาด HTTP อย่างสง่างาม
แยกวิเคราะห์ HTML และสกัดลิงค์
งูหลาม
คัดลอก
def extract_links (html, base_url):
ซุป = สวย (html, 'html.parser')
ลิงค์ = set ()
สำหรับ a_tag ในซุป find_all ('a', href = true):
href = urljoin (base_url, a_tag ['href']))
แยกวิเคราะห์ = urlParse (href)
ถ้าแยกวิเคราะห์. scheme ใน ['http', 'https']:
links.add (href)
ลิงก์กลับ
- แปลง URL ที่สัมพันธ์กันเป็นสัมบูรณ์
- ตัวกรองสำหรับลิงก์ HTTP ที่ถูกต้อง
ตรวจสอบและหักค่าใช้จ่าย URL
งูหลาม
คัดลอก
def is_valid (url):
แยกวิเคราะห์ = urlParse (URL)
return bool (parsed.netloc) และ bool (parsed.scheme)
ใช้สิ่งนี้ก่อนที่จะเพิ่มลิงค์ไปยังคิวการรวบรวมข้อมูลของคุณ
การรวบรวมข้อมูลตรรกะที่มีข้อ จำกัด เชิงลึก
งูหลาม
คัดลอก
การรวบรวมข้อมูล def (seed_url, max_depth = 2):
เยี่ยมชม = set ()
คิว = [(seed_url, 0)]
ในขณะที่คิว:
current_url, ความลึก = queue.pop (0)
หาก current_url ในการเยี่ยมชมหรือความลึก> max_depth:
ดำเนินการต่อ
พิมพ์ (f” การรวบรวมข้อมูล: {current_url} (ความลึก: {ความลึก})”)
html = fetch_page (current_url)
ถ้าไม่ใช่ html:
ดำเนินการต่อ
Visited.add (current_url)
links = extract_links (html, current_url)
สำหรับลิงก์ในลิงค์:
หากลิงค์ไม่ได้เข้าเยี่ยมชม:
queue.append ((ลิงก์ความลึก + 1))
time.sleep (1) # ความล่าช้าความล่าช้า
- แทร็กหน้าเยี่ยมชม
- เพิ่มหน้าใหม่ในคิว
- จำกัด การคลานความลึกเพื่อหลีกเลี่ยงลูปที่ไม่มีที่สิ้นสุด
- เพิ่มความล่าช้าในการเคารพโหลดเซิร์ฟเวอร์
เรียกใช้งานรวบรวมข้อมูล
งูหลาม
คัดลอก
ถ้า __name__ ==“ __main__”:
เมล็ด =“ https://example.com”
รวบรวมข้อมูล (เมล็ด, max_depth = 2)
แทนที่ https://example.com ด้วยเว็บไซต์เป้าหมายของคุณ (ตรวจสอบให้แน่ใจว่าสามารถรวบรวมได้และคุณได้รับอนุญาตให้เข้าถึง)
เคล็ดลับ PRO : คุณสามารถยังคงมีลิงก์ที่เข้าชมหรือจัดเก็บเนื้อหาที่แยกวิเคราะห์ในฐานข้อมูล CSV หรือแม้แต่ดัชนี Elasticsearch ขึ้นอยู่กับกรณีการใช้งานของคุณ
ปรับขนาดเว็บรวบรวมข้อมูลเพื่อใช้ในโลกแห่งความเป็นจริง
การสร้างตัวรวบรวมข้อมูลที่ทำงานบนเครื่องของคุณเป็นสิ่งหนึ่ง-แต่การทำให้มันแข็งแกร่งเร็วและปรับขนาดได้สำหรับการทำงานของข้อมูลในโลกแห่งความเป็นจริงเป็นอีกเรื่องหนึ่ง
ลองสำรวจส่วนประกอบสำคัญที่จำเป็นในการขยายจากสคริปต์แบบเธรดเดี่ยวไปจนถึงตัวรวบรวมข้อมูลระดับองค์กร
การจัดการคิวการรวบรวมข้อมูล
ในซอฟต์แวร์รวบรวมข้อมูลอย่างง่ายเรามักจะใช้รายการในหน่วยความจำหรือชุดเพื่อติดตาม URL สิ่งนี้ไม่ได้ปรับขนาดได้ไม่ดี
สำหรับระบบที่ปรับขนาดได้ใช้:
- Redis หรือ RabbitMQ เป็นคิวข้อความเพื่อจัดการ URL ทั่วทั้งคนงาน
- บลูมฟิลเตอร์ เพื่อหลีกเลี่ยงการกลับมาใช้ URL (ประหยัดพื้นที่)
- คิวตามฐานข้อมูล (PostgreSQL, MongoDB) เพื่อการคงอยู่และการตรวจสอบ
สิ่งนี้ช่วยให้ การรวบรวมข้อมูลแบบกระจาย ซึ่งมีหลายอินสแตนซ์ตัวรวบรวมข้อมูลดึงออกมาจากคิวเดียวกันและอัปเดตสถานะร่วมกัน
มัลติเธรดกับการรวบรวมข้อมูล Async
เกิน 1-2 คำขอต่อวินาที:
- มัลติเธรด : เปิดหลายเธรดเพื่อจัดการคำขอพร้อมกัน (เช่นเธรดหรือพร้อมกัน futures.threadpoolexecutor ใน Python)
- async I/O : ใช้ไลบรารีอะซิงโครนัสเช่น AIOHTTP และ ASYNCIO สำหรับคำขอ HTTP ที่ไม่ปิดกั้น
ตัวอย่างด้วย aiohttp:
งูหลาม
คัดลอก
นำเข้า aiohttp
นำเข้า asyncio
async def fetch (URL):
async กับ aiohttp.clientsession () เป็นเซสชัน:
async กับ session.get (url) เป็นการตอบสนอง:
return await response.text ()
Async Crawlers เร็วขึ้นและมีประสิทธิภาพมากขึ้น โดยเฉพาะอย่างยิ่งสำหรับงาน I/O ที่ถูกผูกไว้เช่นการรวบรวมข้อมูลเว็บ
สถาปัตยกรรมคลานแบบกระจาย
ในระดับคุณจะต้องการเครื่องจักรหลายเครื่องหรือภาชนะที่ทำงานร่วมกัน สิ่งนี้เกี่ยวข้องกับ:
- ตัวกำหนดตารางเวลาแบบกระจาย (เช่นคื่นฉ่าย, คาฟคา)
- โหนดคนงานที่:
- ดึง URL
- ดึงข้อมูลและแยกวิเคราะห์ข้อมูล
- ผลักดันข้อมูลดาวน์สตรีม
- ดึง URL
พิจารณาใช้ Docker เพื่อเก็บรวบรวมข้อมูลของคุณและปรับใช้ผ่านกลุ่มคลาวด์ (เช่น AWS ECS, Kubernetes)
การจัดการกับไซต์ JavaScript-Heavy
ไซต์ที่ทันสมัยหลายแห่งทำให้ลูกค้าเนื้อหาส่วนใหญ่อยู่ฝั่งไคลเอ็นต์ เพื่อจัดการสิ่งนี้:
- ใช้ เบราว์เซอร์ที่ไม่มีหัว เช่น:
- Puppeteer (node.js)
- นักเขียนบทละคร (Python หรือ Node)
- ซีลีเนียม (หลายภาษา)
- Puppeteer (node.js)
เคล็ดลับ:
- หลีกเลี่ยงการโหลดรูปภาพหรือแบบอักษรเพื่อบันทึกแบนด์วิดท์
- โหลดล่วงหน้าเฉพาะทรัพยากรที่สำคัญ
- ความเร็วในการคลานคันเร่งเพื่อหลีกเลี่ยงการแบน
การจัดการข้อผิดพลาดและตรรกะลองลองใหม่
ตัวรวบรวมข้อมูลในโลกแห่งความจริงต้องจัดการอย่างสง่างาม:
- http 403, 404, 429 (คำขอมากเกินไป) และ 500 ข้อผิดพลาด
- เปลี่ยนเส้นทางลูป
- หมดเวลาและการเชื่อมต่อที่ลดลง
แนวทางปฏิบัติที่ดีที่สุด:
- ใช้ คิวลองอีกครั้ง ด้วย backoff แบบเอ็กซ์โปเนนเชียล
- บันทึกความล้มเหลวทั้งหมดด้วยการประทับเวลาและรายละเอียดข้อผิดพลาด
- ใช้พร็อกซีหมุนหรือพูลผู้ใช้ตัวแทนหากจำเป็น
การจัดเก็บข้อมูลและท่อ
ขึ้นอยู่กับข้อมูลและปริมาณการจัดเก็บเนื้อหาใน:
ใช้เคส | ที่เก็บข้อมูลที่แนะนำ |
ชุดข้อมูลอย่างง่าย | CSV, JSON, SQLITE |
เนื้อหาที่มีโครงสร้าง | PostgreSQL, MongoDB |
การค้นหาและดึงข้อความแบบเต็มข้อความ | Elasticsearch, OpenSearch |
จดหมายเหตุระยะยาว | AWS S3, IPFS, MINIO |
ใช้ Kafka, Airflow หรือ ETL ที่กำหนดเองเพื่อทำความสะอาดเปลี่ยนและโหลดข้อมูลดาวน์สตรีม
การตรวจสอบและการสังเกต
ตัวรวบรวมข้อมูลที่ปรับขนาดได้ต้องการการมองเห็นแบบเรียลไทม์ ใช้เครื่องมือเช่น:
- Prometheus + Grafana : ตรวจสอบขนาดคิวอัตราการรวบรวมข้อมูลอัตราความผิดพลาด
- การรวมเข้าด้วยกัน (เช่น Elk Stack): รวมศูนย์บันทึกจากคนงานแบบกระจาย
- การแจ้งเตือน : แจ้งเกี่ยวกับความล้มเหลวในการรวบรวมข้อมูลการห้ามโดเมนหรือความอดอยากคิว
การพิจารณาทางกฎหมายและจริยธรรม
การรวบรวมข้อมูลบนเว็บมีอยู่ในพื้นที่สีเทาตามกฎหมาย - และในขณะที่มันเป็นเครื่องมือที่ทรงพลังสำหรับการรวบรวมข้อมูลก็ต้องใช้อย่างรับผิดชอบเพื่อหลีกเลี่ยงปัญหาทางกฎหมายความเสียหายของแบรนด์หรือการห้ามเซิร์ฟเวอร์
เคารพ robots.txt
ก่อนที่จะรวบรวมข้อมูลโดเมนใด ๆ ตัวรวบรวมข้อมูลของคุณควรดึงและปฏิบัติตามกฎในไฟล์ robots.txt ของเว็บไซต์ (เช่น https://example.com/robots.txt)
ตัวอย่าง:
txt
คัดลอก
ผู้ใช้ตัวแทน: *
ไม่อนุญาต: /ผู้ดูแลระบบ /
คลานล่าช้า: 5
- ไม่อนุญาต: หน้าตัวรวบรวมข้อมูลต้องหลีกเลี่ยง
- คลานเดลย์: ต้องรอกี่วินาทีระหว่างคำขอ
แนวปฏิบัติที่ดีที่สุด : ตรวจสอบและติดตาม robots.txt เสมอ - แม้ว่าเว็บไซต์จะไม่บังคับใช้ในทางเทคนิค
ข้อกำหนดการปฏิบัติตามข้อกำหนด (TOS)
แต่ละเว็บไซต์มี ข้อกำหนดในการให้บริการ ของตนเองซึ่งมักจะร่าง:
- ไม่ว่าจะเป็นบอทหรือไม่
- เนื้อหาใดที่สามารถหรือไม่สามารถคัดลอกได้
- การ จำกัด อัตราการ จำกัด หรือการเข้าถึง
การละเมิด TOS - โดยเฉพาะอย่างยิ่งสำหรับนักรวบรวมข้อมูลเชิงพาณิชย์ - สามารถนำไปสู่การดำเนินการทางกฎหมาย
เคล็ดลับ : ขูดข้อมูลสาธารณะจากเว็บไซต์ที่อนุญาตตามกฎหมายหรืออนุญาตอย่างชัดเจน
ลิขสิทธิ์, IP และความเป็นส่วนตัวของข้อมูล
- เนื้อหาที่คุณคลานอาจมี ลิขสิทธิ์ - แม้ว่าจะเป็นสาธารณะก็ตาม
- การรวบรวม ข้อมูลที่ผู้ใช้สร้างขึ้น (เช่นความคิดเห็นโปรไฟล์) สามารถยก ประเด็นความเป็นส่วนตัว โดยเฉพาะอย่างยิ่งภายใต้กฎหมายเช่น GDPR หรือ CCPA
- หลีกเลี่ยงการจัดเก็บหรือแจกจ่ายข้อมูลที่ละเอียดอ่อน
กฎของหัวแม่มือ : รวบรวมข้อมูลสำหรับการค้นพบและการจัดทำดัชนี อย่าทำซ้ำชุดข้อมูลทั้งหมดเว้นแต่คุณจะมีสิทธิ์หรือใบอนุญาต
ระบุตัวเองว่าเป็นบอท
คุณสามารถส่งสัญญาณความโปร่งใสและความรับผิดชอบผ่าน:
สตริง ตัวแทนผู้ใช้ที่กำหนดเอง
ตัวอย่าง:
น้อย
คัดลอก
CustomCrawler/1.0 (+https: //yourcompany.com/crawler-info)
- ให้ อีเมลหรือหน้าติดต่อคลาน
สิ่งนี้สร้างความไว้วางใจและสามารถป้องกันการห้าม IP ที่ไม่จำเป็น
หลีกเลี่ยงการใช้เซิร์ฟเวอร์และการ จำกัด อัตรา
ซอฟต์แวร์รวบรวมข้อมูลที่ไม่สามารถควบคุมได้สามารถ:
- DDOS เว็บไซต์ขนาดเล็กโดยไม่ได้ตั้งใจ
- รับการบล็อกผ่าน WAFs, implate limiters หรือ captchas
แนวทางปฏิบัติที่ดีที่สุด :
- เคารพการรวบรวมข้อมูลล่าช้า
- ใช้ backoff แบบเอ็กซ์โปเนนเชียลในการลองใหม่
- หลีกเลี่ยงการคลานในช่วงชั่วโมงการจราจรสูงสุด
- ตรวจสอบและเค้นตามรหัสการตอบสนองของเซิร์ฟเวอร์
เมื่อการคลานมีแนวโน้มที่จะผิดกฎหมาย
หลีกเลี่ยงการคลาน:
- เนื้อหา paywalled
- พอร์ทัลรัฐบาลที่มีข้อ จำกัด การเข้าถึง
- ข้อมูลสุขภาพที่ละเอียดอ่อนกฎหมายหรือข้อมูลส่วนบุคคล (PII)
- แพลตฟอร์มส่วนตัว (เช่น LinkedIn, Facebook) เว้นแต่ผ่าน API อย่างเป็นทางการ
หากมีข้อสงสัยให้ปรึกษาที่ปรึกษากฎหมายหรือใช้บริการรวมข้อมูลที่ปฏิบัติตามกฎหมายระดับภูมิภาค
ความท้าทายทั่วไปในการรวบรวมข้อมูลเว็บ
ถึงแม้จะมีการรวบรวมข้อมูลที่มีโครงสร้างอย่างดีและสแต็คเทคโนโลยีที่มั่นคง แต่เงื่อนไขในโลกแห่งความเป็นจริงก็ยังแนะนำแรงเสียดทาน เว็บไซต์ไม่สามารถคาดเดาได้เทคโนโลยีเปลี่ยนไปอย่างรวดเร็วและเซิร์ฟเวอร์ก็ไม่มีความสุขที่ได้เห็นบอทเสมอไป
นี่คือสิ่งที่คุณต้องเตรียมตัว
การ จำกัด อัตราการควบคุมปริมาณและการปิดกั้น IP
เว็บไซต์ส่วนใหญ่ตรวจจับและบล็อกบอทที่ส่งคำขอมากเกินไปในเวลาอันสั้น
อาการ:
- ฉับพลัน HTTP 429 (“ คำขอมากเกินไป”)
- บัญชีดำ IP
- บล็อก CAPTCHAS หรือ WAF (Web Application Firewall)
วิธีแก้ปัญหา:
- ใช้พร็อกซีหรือพูล IP แบบหมุนได้
- สุ่มตัวแทนผู้ใช้และส่วนหัว
- ให้เกียรติส่วนหัวใหม่
- ใช้กลยุทธ์ backoff แบบเลขชี้กำลัง
การจัดการการเปลี่ยนเส้นทางและลิงก์ที่ขาด
คุณมักจะพบ:
- 301/302 การเปลี่ยนเส้นทาง (การเปลี่ยนแปลง URL)
- 404S หรือ 410S (ลบเนื้อหา)
- Soft 404s (หน้าเว็บที่โหลด แต่ไม่มีเนื้อหาจริง)
จะทำอย่างไร:
- ติดตามการเปลี่ยนเส้นทางอย่างชาญฉลาดโดยใช้ ALLE_REDIRECTS = TRUE ในคำขอ HTTP ของคุณ
- บันทึกและข้ามลิงค์ที่เสีย
- ทำให้ URL ปลายทางสุดท้ายเป็นปกติและหักหลัง
กลไกการตรวจจับบอท
ไซต์ใช้เครื่องมือเช่น CloudFlare, Akamai และการป้องกันบอทแบบกำหนดเองเพื่อตรวจจับการรับส่งข้อมูลที่ไม่ใช่มนุษย์
สัญญาณตรวจจับ:
- รูปแบบการเข้าถึงซ้ำ ๆ
- ไม่มีส่วนหัวหรือการเคลื่อนไหวของเมาส์
- ไม่มีการดำเนินการ JS หรือการจัดการคุกกี้
บายพาสกลยุทธ์ (เมื่อเหมาะสมและมีจริยธรรม):
- ใช้เบราว์เซอร์แบบไม่มีหัวเพื่อเลียนแบบผู้ใช้จริง
- เพิ่มความล่าช้าในการสุ่ม
- เคารพข้อ จำกัด ความถี่การรวบรวมข้อมูล
ข้อควรระวัง : เทคนิคการบายพาสบางอย่างอาจละเมิดข้อกำหนดหรือกฎหมายท้องถิ่น
หน้าแบบไดนามิกและจาวาสคริปต์หนัก
ไซต์ที่ทันสมัยหลายแห่งแสดงเนื้อหาหลังจาก JavaScript ทำงาน - ซึ่งคำขอ HTTP ง่าย ๆ จะไม่จับภาพ
แก้ไข:
- ใช้ Puppeteer หรือ Playwright สำหรับการแสดงผลแบบเต็มหน้า
- ใช้เครื่องมือเช่นซีลีเนียมสำหรับการคลานอย่างหนัก
- ตั้งค่าการแคชเพื่อหลีกเลี่ยงการดำเนินการ JS ซ้ำ ๆ
การระเบิดของ URL และกับดักรวบรวมข้อมูล
บางเว็บไซต์มี URL ที่สามารถรวบรวมข้อมูลได้ไม่สิ้นสุดผ่านตัวกรองปฏิทินหรือลิงก์ที่ใช้เซสชัน
ตัวอย่างกับดัก:
- /ผลิตภัณฑ์? page = 1, /ผลิตภัณฑ์? page = 2 …→ไปตลอดกาล
- /ปฏิทิน? วันที่ = 2023-01-01 →การรวมกันที่ไม่มีที่สิ้นสุด
วิธีแก้ปัญหา:
- ใช้ตัวกรอง regex หรือ Whitelists เพื่อควบคุมรูปแบบ URL
- จำกัด ความลึกการรวบรวมข้อมูลและจำนวนคำขอต่อโดเมน
- ใช้การซ้ำซ้อนก่อนเข้าคิวลิงก์ใหม่
เนื้อหาที่ซ้ำกันหรือมีมูลค่าต่ำ
บางเว็บไซต์ให้บริการเนื้อหาเกือบเหมือนกันภายใต้ URL ที่แตกต่างกัน (เช่นพารามิเตอร์ UTM, เรียงลำดับคำสั่งซื้อ)
เคล็ดลับเพื่อหลีกเลี่ยงเสียงรบกวน:
- พารามิเตอร์การสืบค้นแถบเช่น? utm_source ในระหว่างการทำให้เป็นมาตรฐาน
- เนื้อหาหน้าแฮชเพื่อตรวจจับซ้ำ
- ใช้ Canonical Tags (ถ้ามี) เพื่อจัดลำดับความสำคัญของเวอร์ชันหลัก
คลานในระดับ: ความล้มเหลวของระบบ
การรวบรวมข้อมูลขนาดใหญ่มักจะล้มเหลวเนื่องจาก:
- หน่วยความจำรั่วไหล
- ดิสก์ล้น
- การควบคุมปริมาณเครือข่าย
- ด้ายหยุดชะงัก
วิธีการเตรียม:
- ตรวจสอบทรัพยากรระบบอย่างต่อเนื่อง
- จำกัด เธรดที่เกิดขึ้นพร้อมกันและ I/O
- ใช้เบรกเกอร์วงจรหรือเริ่มงานที่ไม่ปลอดภัย
- สำรองความคืบหน้าของการเขียนโค้ดกลาง
นำเว็บของคุณคลานไปอีกระดับ
ไม่ว่าคุณจะกำลังสร้างเครื่องมือค้นหาการให้อาหารการเรียนรู้ของเครื่องจักรหรือการแยกข้อมูลเชิงลึกสำหรับการวิจัยเชิงวิชาการ - โปรแกรมรวบรวมข้อมูลเว็บเป็นรากฐานของการค้นพบข้อมูลที่ปรับขนาดได้
ในคู่มือนี้เราได้กล่าวถึง:
- Web Crawler คืออะไรและทำงานอย่างไร
- วิธีการสร้างจากศูนย์ใน Python
- เครื่องมือห้องสมุดและกลยุทธ์การปรับขนาดในโลกแห่งความเป็นจริง
- ความท้าทายทางกฎหมายจริยธรรมและเทคนิค
- คำถามที่พบบ่อยที่นักพัฒนาและทีมข้อมูลพบ
ตอนนี้คุณมีความเข้าใจที่สมบูรณ์แล้วคุณพร้อมที่จะสร้างซอฟต์แวร์รวบรวมข้อมูลที่ไม่ได้ทรงพลัง แต่มีจริยธรรมมีประสิทธิภาพและพร้อมใช้งาน
ขั้นตอนต่อไป? ปรับใช้ตัวรวบรวมข้อมูลของคุณตรวจสอบประสิทธิภาพและพัฒนาเพื่อให้บรรลุเป้าหมายข้อมูลที่เป็นเอกลักษณ์ของคุณ
คำถามที่พบบ่อย
เหล่านี้เป็นคำถามที่พบบ่อยที่สุดเกี่ยวกับตัวรวบรวมข้อมูลเว็บ - ดึงจากพฤติกรรมการค้นหาจริงการแจ้งเตือน LLM และ PAA (คนถามด้วย) กล่องใน SERPS
Web Crawler คืออะไร?
Web Crawler เป็นโปรแกรมที่เรียกดูอินเทอร์เน็ตอย่างเป็นระบบเพื่อค้นหาและจัดทำดัชนีเนื้อหาจากหน้าเว็บ มันใช้กันทั่วไปโดยเครื่องมือค้นหานักวิจัยและนักพัฒนาสำหรับการรวบรวมข้อมูลอัตโนมัติ
Web Crawler ทำงานอย่างไร?
ตัวรวบรวมข้อมูลบนเว็บเริ่มต้นจาก URL เมล็ดพันธุ์อย่างน้อยหนึ่งรายการ มันส่งคำขอ HTTP แยกวิเคราะห์ HTML ที่ส่งคืนสารสกัดลิงก์และทำซ้ำกระบวนการซ้ำในขณะที่จัดเก็บหรือประมวลผลข้อมูล
การรวบรวมข้อมูลเว็บและการขูดเว็บแตกต่างกันอย่างไร
การรวบรวมข้อมูลเว็บเป็นเรื่องเกี่ยวกับการค้นพบและนำทางหน้าเว็บ การขูดเว็บเป็นเรื่องเกี่ยวกับการแยกข้อมูลเฉพาะจากหน้าเหล่านั้น ตัวรวบรวมข้อมูลอาจขูด แต่การขูดไม่ได้เกี่ยวข้องกับการรวบรวมข้อมูลหลายหน้า
เว็บคลานถูกกฎหมายหรือไม่?
การรวบรวมข้อมูลเว็บนั้นถูกกฎหมายเมื่อทำอย่างรับผิดชอบโดยเคารพ Robots.txt และข้อกำหนดในการให้บริการของเว็บไซต์ อย่างไรก็ตามข้อมูลที่มีลิขสิทธิ์มีความละเอียดอ่อนหรือส่วนตัวโดยไม่ได้รับอนุญาตอาจละเมิดกฎหมายเช่น GDPR หรือการคุ้มครองลิขสิทธิ์
เครื่องมือที่ดีที่สุดในการสร้างเว็บรวบรวมข้อมูลคืออะไร?
เครื่องมือยอดนิยมรวมถึง:
ซีลีเนียม - สำหรับเนื้อหาแบบโต้ตอบหรือแบบไดนามิก
Scrapy (Python)-กรอบงานเต็มรูปแบบ
คำขอ + BeautifulSoup - การเขียนสคริปต์ที่มีน้ำหนักเบา
Puppeteer / Playwright- สำหรับเว็บไซต์ JS-Heavy
ฉันสามารถรวบรวมข้อมูลเว็บไซต์ JavaScript ได้หรือไม่?
ใช่. สำหรับเนื้อหาที่เรนเดอร์ JS ให้ใช้เบราว์เซอร์แบบไม่มีส่วนร่วมเช่น Puppeteer หรือ Playwright พวกเขาอนุญาตให้ซอฟต์แวร์รวบรวมข้อมูลแสดงผลและโต้ตอบกับองค์ประกอบแบบไดนามิกในฐานะเบราว์เซอร์ของมนุษย์
ฉันจะหลีกเลี่ยงการถูกบล็อกในขณะที่คลานได้อย่างไร
เพื่อหลีกเลี่ยงการถูกบล็อก:
ตรวจสอบสำหรับ HTTP 429 และลองใหม่ด้วยความล่าช้า
เคารพ robots.txt
ความถี่คำขอคันเร่ง
หมุนที่อยู่ IP และตัวแทนผู้ใช้
ตัวรวบรวมข้อมูลควรไปลึกแค่ไหน?
ความลึกขึ้นอยู่กับเป้าหมายของคุณ การรวบรวมข้อมูลแบบตื้น (1-2 ระดับ) นั้นรวดเร็วและมีประโยชน์สำหรับการค้นพบ การรวบรวมข้อมูลลึกสามารถค้นพบโครงสร้างของไซต์ แต่ความเสี่ยงในการเข้าสู่ลูปหรือกับดักที่ไม่มีที่สิ้นสุด ใช้ขีด จำกัด เชิงลึกการกรอง URL และการซ้ำซ้อน
ฉันสามารถใช้โปรแกรมรวบรวมข้อมูลเว็บสำหรับการเรียนรู้ของเครื่องได้หรือไม่?
อย่างแน่นอน. โปรแกรมรวบรวมข้อมูลบนเว็บมีการใช้กันอย่างแพร่หลายในการสร้างชุดข้อมูลสำหรับ NLP, เอ็นจิ้นคำแนะนำ, การมองเห็นคอมพิวเตอร์และอื่น ๆ พวกเขาอนุญาตให้รวบรวมข้อมูลการฝึกอบรมอัตโนมัติทั่วทั้งเว็บสาธารณะ