🎯 Trình duyệt đám mây tùy chỉnh, chống phát hiện được hỗ trợ bởi Chromium tự phát triển, thiết kế dành cho trình thu thập dữ liệu webtác nhân AI. 👉Dùng thử ngay
Web Crawler là gì? Cách Crawling và Discovery hoạt động

Web Crawler là gì?

Scrapeless Crawl phát hiện và ghi lại các trang công khai đã được chấp thuận để thực hiện crawling có kiểm soát và quy trình trích xuất sau đó.

Tóm tắt ngắn gọn

  • Một web crawler phát hiện và truy cập các trang bằng cách theo dõi một chính sách lập lịch. Nó bắt đầu từ các URL hạt giống, tìm các liên kết, chuẩn hóa chúng và thêm các URL đủ điều kiện vào hàng đợi.
  • Crawling lập bản đồ nội dung; scraping trích xuất các trường. Một crawler có thể lưu các trang mà không biến chúng thành một bộ dữ liệu kinh doanh.
  • Các crawler tốt kiểm soát phạm vi và tải. Giới hạn máy chủ, URL chính, phát hiện trùng lặp, quy tắc robots và xác định rõ ràng ngăn chặn lãng phí và giảm áp lực lên các trang web.
  • JavaScript có thể thay đổi những gì một crawler thấy. Một số liên kết xuất hiện trong HTML ban đầu, trong khi những liên kết khác chỉ được thêm vào sau khi kết xuất.

Một web crawler là một khách hàng tự động phát hiện các trang, yêu cầu chúng, trích xuất liên kết và lập lịch các URL mới cho các lần truy cập sau. Các công cụ tìm kiếm sử dụng các crawler để tìm nội dung cho việc lập chỉ mục, trong khi các tổ chức sử dụng các crawler tập trung để lập bản đồ tài liệu, giám sát các trang công cộng, hoặc tập hợp bộ sưu tập các trang cho việc trích xuất sau này.

Web Crawler hoạt động như thế nào?

Một web crawler biến một tập hợp nhỏ các URL hạt giống thành một lộ trình đồ thị có kiểm soát.

  1. Hạt giống miền biên giới. Thêm các URL khởi đầu đã được chấp thuận, sơ đồ trang web, hoặc các nguồn tin đã biết vào hàng đợi.
  2. Kiểm tra chính sách. Áp dụng phạm vi miền, quy tắc robots, danh sách cho phép, các ngoại lệ, và giới hạn yêu cầu cấp máy chủ.
  3. Lấy một URL. Ghi lại trạng thái phản hồi, loại nội dung, URL cuối cùng, và các gợi ý chính thức.
  4. Trích xuất liên kết. Phân tích các liên kết đủ điều kiện, giải quyết các URL tương đối, loại bỏ các đoạn, và chuẩn hóa các bản sao.
  5. Lập lịch cho lần truy cập tiếp theo. Ưu tiên các URL chưa thấy, hữu ích và dừng lại khi phạm vi hoặc ngân sách hoàn thành.

Google Quy trình crawling JavaScript tách biệt crawling, rendering, và xử lý liên kết, đây là một mô hình hữu ích để hiểu tại sao một trang được lấy và một trang được kết xuất có thể hiển thị các liên kết khác nhau.

Tài liệu rộng hơn về crawling và lập chỉ mục của Google cũng tách biệt phát hiện URL, kiểm soát robots, chuẩn hóa, siêu dữ liệu, và các mối quan tâm về rendering.

Các phần cốt lõi của một Crawler

Một crawler cần một biên giới, trình lấy, trình phân tích, lớp deduplication, động cơ chính sách, và đường dẫn lưu trữ.

Thành phầnTrách nhiệm
Biên giới URLLưu trữ các URL đủ điều kiện và quyết định thứ tự truy cập
Trình lấy hoặc trình kết xuấtLấy phản hồi hoặc xây dựng tài liệu đã được kết xuất
Trình trích xuất liên kếtTìm các URL có thể điều hướng trong HTML, tiêu đề, nguồn cấp dữ liệu, hoặc phản hồi có cấu trúc
Chính thức hóaChuẩn hóa các URL và nhóm các biến thể tương đương
Động cơ chính sáchÁp dụng quy tắc robots, phạm vi, giới hạn máy chủ, và mẫu loại trừ
Kho trạng tháiGhi lại các lần truy cập, thất bại, băm nội dung, và siêu dữ liệu lập lịch

Web Crawlers được sử dụng để làm gì?

Các bộ thu thập web được sử dụng ở bất cứ đâu mà một hệ thống cần phát hiện một tập hợp trang kết nối đang thay đổi.

Lập chỉ mục tìm kiếm

Khám phá các trang mới và cập nhật, sau đó truyền nội dung của chúng vào một quy trình lập chỉ mục.

Kiểm toán trang web

Lập bản đồ các liên kết nội bộ, chuyển hướng, trang bị hỏng, thẻ chuẩn, tiêu đề và siêu dữ liệu trên một miền.

Thu thập tri thức

Duyệt qua tài liệu đã được phê duyệt hoặc cơ sở tri thức công lập trước khi phân tích chúng thành một hệ thống tìm kiếm.

Giám sát thay đổi

Kiểm tra lại các URL đã chọn theo lịch trình và so sánh băm nội dung hoặc các trường đã trích xuất.

Các bộ thu thập tránh khỏi các con đường trùng lặp và vô hạn như thế nào?

Các bộ thu thập tránh công việc trùng lặp bằng cách chuẩn hóa URL, theo dõi các tài nguyên đã truy cập và hạn chế các con đường nào có thể vào biên giới.

Các điều khiển chung bao gồm loại bỏ các đoạn, sắp xếp hoặc bỏ qua các tham số truy vấn không cần thiết, tôn trọng các gợi ý chuẩn, so sánh băm nội dung và thiết lập độ sâu tối đa hoặc số lượng trang. Các trang lịch, điều hướng phân loại và tham số phiên có thể tạo ra số lượng URL gần giống lớn.

Một bộ thu thập nên hành xử có trách nhiệm như thế nào?

Một bộ thu thập có trách nhiệm xác định mình, tuân theo các sở thích truy cập công bố, giới hạn tải trên mỗi máy chủ và dừng lại tại các ranh giới truy cập.

RFC 9309 chuẩn hóa các quy tắc robots.txt cho các khách hàng tự động. Giao thức đó thông tin về sở thích của bộ thu thập; nó không cấp phép truy cập nội dung được bảo vệ. Các điều khoản của trang, nghĩa vụ về quyền riêng tư, bản quyền, quyền cơ sở dữ liệu và luật địa phương vẫn yêu cầu xem xét riêng.

Biên giới URL được thiết kế như thế nào?

Biên giới URL là tập hợp làm việc của bộ thu thập: các URL đang chờ được truy cập cùng với thông tin cần thiết để lên lịch cho chúng. Một biên giới hữu ích lưu trữ nhiều hơn một chuỗi. Nó có thể bao gồm trang nguồn, thời gian khám phá, độ sâu, máy chủ, độ ưu tiên, loại trang mong đợi và quyết định chính sách đã chấp thuận URL. Bối cảnh đó làm cho việc thu thập có thể giải thích và giúp ngăn chặn sự mở rộng ngẫu nhiên vượt quá phạm vi.

Lên lịch nên cân bằng giữa tính liên quan và công bằng. Một bộ thu thập tập trung có thể ưu tiên các trang chi tiết sản phẩm hơn là các bộ lọc điều hướng, trong khi một bộ thu thập tài liệu có thể truy cập các trang mục lục trước vì chúng tiết lộ cấu trúc của trang.

Biên giới cũng cần có các quy tắc hoàn thành rõ ràng. Các ví dụ bao gồm đạt giới hạn trang đã được phê duyệt, cạn kiệt các URL đủ điều kiện, hoàn thành một sơ đồ đã biết hoặc đáp ứng một mục tiêu bao phủ cho các loại trang đã định nghĩa. Nếu không có điều kiện dừng, một bộ thu thập có thể tiếp tục tìm kiếm các lịch, các tổ hợp tìm kiếm và các biến thể tham số mà không thêm nội dung hữu ích.

Các URL được chuẩn hóa và loại bỏ trùng lặp như thế nào?

Chuẩn hóa URL chuyển đổi các biểu diễn khác nhau thành một danh tính đồng nhất trước khi chúng vào biên giới. Các bước chung bao gồm giải quyết các liên kết tương đối, biến tên máy chủ thành chữ thường, loại bỏ các đoạn, chuẩn hóa các cổng mặc định và xử lý các dấu gạch chéo cuối theo hành vi của trang. Các tham số truy vấn cần cẩn trọng vì một số thay đổi nội dung trong khi một số khác chỉ theo dõi điều hướng.

Các thẻ chuẩn và chuyển hướng cung cấp tín hiệu hữu ích nhưng không nên được chấp nhận một cách mù quáng. Một bộ thu thập có thể ghi lại URL được yêu cầu, URL cuối cùng, URL chuẩn đã khai báo và băm nội dung như các trường riêng biệt. Điều này bảo tồn bằng chứng khi một trang tuyên bố các thẻ chuẩn không nhất quán hoặc phục vụ cùng một nội dung qua nhiều con đường.

Giảm thiểu có thể xảy ra ở nhiều lớp. Giảm thiểu URL ngăn việc truy cập lặp lại cùng một địa chỉ đã được chuẩn hóa. Băm nội dung xác định các URL khác nhau trả về các tài liệu tương đương. Giảm thiểu ở cấp độ bản ghi thuộc về phía hạ lưu khi vài trang mô tả cùng một thực thể. Giữ cho các lớp này riêng biệt tránh việc điều trị mọi trang trùng lặp như một bản ghi thương mại trùng lặp.

Các bộ thu thập tập trung quyết định theo dõi cái gì?

Một bộ thu thập tập trung theo dõi các liên kết có khả năng dẫn đến lớp nội dung đã được phê duyệt. Nó có thể sử dụng mẫu URL, thuộc tính liên kết, văn bản xung quanh, mẫu trang, thành viên sơ đồ trang hoặc dữ liệu điều hướng có cấu trúc. Quyết định nên dựa trên các đặc điểm có thể quan sát được có thể được xem xét, không phải là một giả định mơ hồ rằng mọi liên kết nội bộ đều có giá trị.

Quy tắc cho phép định nghĩa lãnh thổ dự kiến, trong khi quy tắc từ chối loại bỏ các bẫy đã biết như trang tài khoản, các biến thể tìm kiếm, vòng lịch, nhị phân có thể tải xuống hoặc các hành động phá hủy. Phạm vi tích cực an toàn hơn là dựa vào một danh sách chặn ngày càng tăng. Nếu bộ thu thập được dự định cho một phần tài liệu, chỉ chấp nhận máy chủ và cấu trúc đường dẫn đó trừ khi một quy tắc đã được xem xét mở rộng nó.

Phân loại trang cải thiện cả việc lên lịch và trích xuất. Một trang danh sách có thể tạo ra nhiều liên kết ứng viên hơn, một trang chi tiết có thể cung cấp dữ liệu cho một chương trình thu thập dữ liệu, và một trang lỗi có thể kết thúc nhánh. Phân loại có thể sử dụng các dấu hiệu bền vững trong phản hồi và nên bao gồm một trạng thái không xác định để các mẫu mới không lặng lẽ vào quy trình sai.

Các lần thu thập lại được lên lịch như thế nào?

Thu thập lại là một vấn đề phát hiện thay đổi. Bộ thu thập nên kiểm tra lại các trang theo giá trị của chúng, tỷ lệ thay đổi quan sát được và các ràng buộc nguồn thay vì áp dụng một khoảng thời gian cho toàn bộ trang. Các trang danh sách cập nhật thường xuyên có thể xứng đáng được kiểm tra sớm hơn các tài liệu chính sách ổn định. Các trang liên tục giữ nguyên có thể được lên lịch ít thường xuyên hơn.

Các yêu cầu HTTP có điều kiện có thể giảm thiểu các chuyển nhượng không cần thiết khi một trang cung cấp các xác thực, nhưng bộ thu thập vẫn cần một chính sách cho các xác thực thiếu hoặc không nhất quán. Các băm nội dung cung cấp một tín hiệu cấp ứng dụng sau khi thu hồi. Lưu giữ lịch sử đủ để phân biệt một sự thay đổi nội dung có ý nghĩa từ tiếng ồn mẫu như đề xuất quay vòng hoặc đánh dấu cụ thể theo phiên.

Một hàng đợi tái thu thập cũng nên xử lý việc loại bỏ. Một phản hồi không tìm thấy, chuyển hướng, ranh giới truy cập, hoặc trang trống có thể đại diện cho một sự kiện vòng đời thực tế. Ghi lại quan sát và áp dụng một trạng thái chuyển tiếp đã được xem xét thay vì ngay lập tức xóa dữ liệu trước đó.

Bạn Quan Sát Chất Lượng Crawler Như Thế Nào?

Chất lượng crawler được đo bằng phạm vi hữu ích và hành vi được kiểm soát. Theo dõi các URL đã phát hiện, các URL được chấp nhận, các trang đã lấy, nội dung duy nhất, loại trang, chuyển hướng, các đường dẫn bị loại trừ và các trang đã sẵn sàng cho việc trích xuất. Một số lượng phát hiện tăng lên không phải là thành công nếu hầu hết các bổ sung là trùng lặp hoặc tham số không phù hợp.

Chẩn đoán hoạt động nên kết nối mỗi lần lấy với bản ghi biên giới và quyết định chính sách của nó. Khi một crawler bỏ lỡ một trang, các người đánh giá cần biết liệu liên kết đó chưa bao giờ được nhìn thấy, bị từ chối bởi phạm vi, bị trùng lặp không chính xác, bị chặn bởi một vấn đề lấy dữ liệu, hoặc được phân loại sai.

Cuối cùng, xem xét tác động của server và tín hiệu tuân thủ cùng với phạm vi. Khối lượng yêu cầu cấp máy chủ, mẫu phản hồi và sở thích thu thập đã công bố nên ảnh hưởng đến việc lập lịch. Một crawler mà lập bản đồ các trang đúng trong khi phớt lờ phạm vi hoặc tải nguồn không phải là một crawler hợp lệ.

Kết luận

Một crawler web là một hệ thống phát hiện và lập lịch được xây dựng xung quanh các URL. Chất lượng của nó phụ thuộc ít hơn vào số lượng liên kết mà nó có thể theo dõi hơn là vào cách cẩn thận nó kiểm soát phạm vi, trùng lặp, kết xuất, chính sách thăm lại và tải server.

Sẵn Sàng Để Xây Dựng Quy Trình Dữ Liệu Web Của Bạn?

Sử dụng Scrapeless để lấy nội dung web công khai, sau đó áp dụng mẫu phát hiện và trích xuất phù hợp với bộ dữ liệu của bạn.

Bắt Đầu Miễn Phí →

Câu Hỏi Thường Gặp

Crawler web có phải là bot không?

Có. Một crawler web là một bot phần mềm được thiết kế để tự động truy cập các tài nguyên và phát hiện các URL bổ sung theo một chính sách xác định.

Crawler có trích xuất dữ liệu không?

Một crawler có thể trích xuất liên kết và siêu dữ liệu, nhưng việc trích xuất trường có cấu trúc thường là công việc của trình thu thập dữ liệu. Một hệ thống có thể chứa cả hai thành phần.

Robots.txt có chặn truy cập không?

Không. Robots.txt truyền đạt các quy tắc cho các crawler hợp tác; nó không phải là cơ chế xác thực hoặc kiểm soát truy cập.

Một crawler có thể đọc liên kết được kết xuất bằng JavaScript không?

Có, nếu crawler bao gồm một giai đoạn kết xuất. Một crawler chỉ lấy dữ liệu chỉ thấy các liên kết có trong phản hồi đã lấy.

Tài liệu tham khảo