Một trình thu thập dữ liệu (crawler) phát hiện và truy cập lại các URL; một trình trích xuất (scraper) lấy các trường hoặc nội dung từ các trang đã chọn. Một hệ thống có thể thực hiện cả hai nhiệm vụ.
Việc thu thập dữ liệu là một vấn đề đồ thị và lập lịch. Việc trích xuất là một vấn đề phân tích, chuẩn hóa và chất lượng dữ liệu.
Một trình thu thập dữ liệu không có khả năng trích xuất chi tiết có thể duy trì một danh sách URL; một trình trích xuất không có việc thu thập có thể theo dõi một danh sách các trang đã biết.
Tách biệt việc phát hiện, lấy dữ liệu, trích xuất và lưu trữ cho phép các nhóm sửa chữa một bộ phân tích bị hỏng mà không cần lặp lại một lần thu thập toàn bộ.
Cả hai tên gọi đều không cấp quyền truy cập: xác định phạm vi, tôn trọng các hạn chế và giữ lại nguồn gốc cho mỗi bản ghi.
Sự khác biệt giữa một trình trích xuất web và một trình thu thập web là gì?
Một trình thu thập web theo các liên kết để tìm các trang, trong khi một trình trích xuất web chuyển đổi các trang đã chọn thành dữ liệu có thể sử dụng. Sự khác biệt này mô tả một trách nhiệm, không phải là một ngôn ngữ lập trình hoặc danh mục sản phẩm. Một ứng dụng có thể phát hiện các trang, lấy chúng, phân tích các trường và truy cập lại chúng theo lịch trình. Việc gọi nó là một trình thu thập hay trình trích xuất phụ thuộc vào nhiệm vụ mà bạn đang thảo luận.
Xem xét một danh mục trực tuyến. Quá trình phát hiện bắt đầu từ các trang danh mục hoặc một sơ đồ trang web và tìm các URL sản phẩm. Việc trích xuất đọc từng trang sản phẩm và ghi lại tên, giá niêm yết, tiền tệ, thông điệp tồn kho, URL nguồn, và thời gian quan sát. Quá trình phát hiện có thể thành công ngay cả khi trình phân tích sản phẩm bị hỏng. Việc trích xuất có thể thành công với một danh sách URL đã được kiểm duyệt bằng tay ngay cả khi không có trình thu thập nào. Những chế độ thất bại độc lập đó đều xứng đáng có các chỉ số riêng biệt.
Hướng dẫn phát hiện URL giúp định nghĩa một tập hợp nguồn đã được giới hạn. Đối với việc thu thập trang có quản lý, Nstdata Crawl có thể được thử nghiệm với các trang cụ thể và các trường đầu ra bạn cần; nó không loại bỏ phạm vi phát hiện hoặc xác nhận phía sau.
Trải nghiệm Nstproxy Crawl - Bắt Đầu Dùng Thử Miễn Phí Hôm Nay
Câu hỏi
Trình thu thập
Trình trích xuất
Đầu vào chính
Hạt giống, sơ đồ trang, liên kết
URL đã biết hoặc nội dung đã lấy
Đầu ra chính
Biên giới URL và trạng thái lấy dữ liệu
Bản ghi có cấu trúc hoặc văn bản đã được làm sạch
Quyết định cốt lõi
Trang nào là tiếp theo?
Trang này nói gì?
Thất bại điển hình
Các trang bị thiếu, vòng lặp, trùng lặp
Các trường bị thiếu, giá trị sai, bộ chọn không còn hiệu lực
Chỉ số chính
Phạm vi các trang đủ điều kiện
Độ chính xác và đầy đủ của các trường
Đây là những trách nhiệm, không phải là các nhãn công cụ cứng nhắc. Giao thức loại trừ Robot RFC 9309 liên quan đến quyền truy cập tự động; các tín hiệu của nó quan trọng ngay cả đối với một hệ thống được tiếp thị như một trình trích xuất khi hệ thống đó lấy các trang.
Cách mà một trình thu thập phát hiện và lập lịch các trang
Một trình thu thập bắt đầu với một tập hợp hạt giống đã được giới hạn. Nó lấy một trang, trích xuất các liên kết đủ điều kiện, chuẩn hóa các URL, loại bỏ trùng lặp và thêm các mục tiêu chưa thấy vào một biên giới. Một biên giới bền bỉ ghi lại URL đã chuẩn hóa, trang nguồn, thời gian phát hiện, lần lấy cuối, trạng thái thử lại, và lý do cho việc đưa vào. Nếu không có trạng thái này, một lần khởi động lại có thể truy cập lại các trang giống nhau hoặc mất toàn bộ nhánh.
Phạm vi quan trọng hơn tốc độ. Một liên kết danh mục có thể dẫn vào các bộ lọc, lịch, biến thể truy vấn, tham số phiên, hoặc phân trang vô hạn. Định nghĩa các máy chủ được phép, mẫu đường dẫn, tham số truy vấn, độ sâu tối đa, và ngân sách trên từng máy chủ trước khi chạy. Một URL ?sort=price có thể đại diện cho một chế độ xem khác biệt hữu ích; một tham số theo dõi thì thường không. Xem xét các thẻ chuẩn hóa như là manh mối thay vì là một lệnh không điều kiện để loại bỏ một trang.
Sơ đồ trang là những hạt giống hữu ích, không phải là bằng chứng rằng mọi trang đã liệt kê đều tồn tại hoặc đang hiện hành. Tài liệu sơ đồ trang của Google giải thích rằng việc gửi một cái giúp phát hiện nhưng không đảm bảo việc thu thập hoặc lập chỉ mục. Đối với một pipeline dữ liệu doanh nghiệp, so sánh các URL sơ đồ với việc duyệt liên kết có kiểm soát. Một sự giảm đột ngột về số URL được phát hiện có thể có nghĩa là một thiết kế lại, một lần lấy bị chặn, hoặc một sơ đồ trang đã thay đổi; nó nên thúc đẩy việc điều tra, chứ không phải là sự xóa lặng lẽ.
Trình thu thập có thể chỉ xuất ra các URL và siêu dữ liệu lấy dữ liệu. Điều đó là đủ cho các danh sách, kiểm toán di chuyển, kiểm tra liên kết hỏng, và chọn các trang để trích xuất. Nó vẫn chưa phải là một tập dữ liệu giá cả hoặc liên lạc đáng tin cậy. Tài liệu kiến trúc của Scrapy cho thấy cách mà một khung trình thu thập tách biệt lập lịch, tải xuống, nhện, và xử lý mục trong một thực thi cụ thể.
Cách mà một trình trích xuất biến các trang thành các bản ghi
Một trình trích xuất nhận một trang và một hợp đồng trích xuất. Hợp đồng đó định nghĩa các trường, loại, quy tắc null, đơn vị, giá trị được phép, và nguồn gốc. Ví dụ, price_amount không có currency và observed_at thì không an toàn để so sánh giữa các trang. availability=true không có tính bảo vệ khi trang chỉ đơn giản nói "tồn kho hạn chế" hoặc khi giá trị đến từ một thẻ quảng cáo thay vì từ trang chi tiết.
Extraction có thể sử dụng HTML nghĩa semantíc, dữ liệu có cấu trúc nhúng, một API được ủy quyền hoặc văn bản DOM được hiển thị. Kiểm tra phản hồi mạng và nguồn trước; chỉ hiển thị JavaScript khi dữ liệu cần thiết vắng mặt. Việc hiển thị tốn kém hơn và thay đổi chế độ thất bại: tài liệu có thể truy xuất thành công trong khi một yêu cầu ở phía khách sau đó lại thất bại. Hướng dẫn cạo dữ liệu được hiển thị bằng JavaScript khám phá sự phân biệt này.
Giữ nguyên URL nguồn, URL cuối cùng sau khi chuyển hướng, dấu thời gian lấy dữ liệu và tham chiếu băm hoặc ảnh chụp. Nếu một bộ chọn bắt đầu trả về thẻ "sản phẩm được đề xuất" bên cạnh, số hàng có thể vẫn trông có vẻ khỏe mạnh. Các kiểm tra ở cấp trường phát hiện sai sót: một tiêu đề không trống, tiền tệ hợp lý, định danh mong đợi và một mẫu hồ sơ đã được con người xem xét. Hướng dẫn trích xuất văn bản HTML chỉ ra tại sao việc loại bỏ thẻ một mình là không đủ cho nội dung sạch.
Vì vậy, cạo dữ liệu không đồng nghĩa với việc tải xuống HTML. Một phản hồi HTTP 200 có thể chứa một tường đăng nhập, một thông báo lỗi hoặc một biến thể sản phẩm khác. Tất cả có thể tạo ra dữ liệu hợp lệ về mặt cú pháp nhưng sai.
Nơi gặp gỡ của bộ thu thập và bộ cạo trong một dây chuyền sản xuất
Một dây chuyền thực tiễn là seeds → frontier → fetch → classify → extract → validate → store → revisit. Mỗi giai đoạn cần một hợp đồng và trạng thái thất bại có thể quan sát được. Lưu lại các lần lấy thô riêng biệt với các hồ sơ đã phân tích. Sau đó, một sửa chữa bộ chọn có thể phát lại các trang đã lưu mà không cần thu thập lại, và một thay đổi phát hiện có thể được kiểm tra mà không làm hỏng các quan sát của ngày hôm qua.
Đối với mỗi URL, giữ nguyên một trạng thái như discovered, queued, fetched, parsed, validated, hoặc failed. Phân biệt các lỗi mạng và các lỗi cạo dữ liệu. Thử lại một thời gian chờ tạm thời với sự gia tăng; không liên tục thử lại một trang mà bố cục của nó không còn chứa các trường đã được hợp đồng. Các hàng đợi thư chết và việc xem xét mẫu thường rẻ hơn so với việc thử lại im lặng. Với nhiều công nhân, làm cho việc ghi lại trở nên idempotent để việc thử lại một công việc không tính gấp đôi một mục.
Chính sách xem lại nên theo dõi trường hợp sử dụng. Một trang tài liệu tĩnh có thể cần các kiểm tra thỉnh thoảng; một trang giá có thể cần quan sát thường xuyên hơn nếu quy tắc của trang và mục đích kinh doanh cho phép. Đừng nhầm lẫn "lần thu thập cuối" với "lần thay đổi cuối," và đừng suy ra rằng một trang không thay đổi chứng tỏ một đề nghị vẫn có thể đặt chỗ. Giữ lại lịch sử thay vì ghi đè giá trị trước đó duy nhất.
Hướng dẫn Python cho nhiều trang là một tài liệu đi kèm về triển khai. Nếu việc thu thập đáng tin cậy các trang được phép là nút thắt cổ chai, Nstdata Crawl là một thành phần cần đánh giá với các URL đại diện; giữ cho việc phát hiện, xác thực và quản lý là rõ ràng.
Khi nào bạn cần một bộ thu thập, một bộ cạo, hoặc cả hai?
Chỉ sử dụng bộ cạo khi bạn đã có một bộ URL ổn định: các trang sản phẩm của riêng bạn, một danh sách tài liệu công cộng được phê duyệt, hoặc một tập hợp các trang tài liệu được xác định. Một danh sách cố định đơn giản hóa việc kiểm soát phạm vi và kiểm toán. Lập lịch cho các URL đó trực tiếp và đánh dấu các chuyển hướng hoặc thay đổi nội dung.
Sử dụng bộ thu thập mà không cần cạo dữ liệu theo miền khi câu hỏi là "có những trang nào?" Các cuộc kiểm tra di chuyển trang, kiểm kê nội dung, và phát hiện liên kết bị hỏng thường cần URL, trạng thái, mục tiêu chính, tiêu đề, và các liên kết đã phát hiện, không cần một sơ đồ sản phẩm.
Sử dụng cả hai khi tập hợp mục tiêu thay đổi thường xuyên hoặc quá lớn để liệt kê bằng tay. Các chợ trực tuyến, bảng việc làm và kho lưu trữ biên tập thêm và loại bỏ các trang chi tiết. Bộ thu thập tìm các ứng viên; một bộ phân loại xác định loại trang; bộ cạo tạo ra các hồ sơ; xác thực quyết định hồ sơ nào có thể sử dụng. Không chạy một bộ phân tích trang sản phẩm trên mỗi danh mục, bộ lọc, hoặc trang kết quả tìm kiếm.
Kịch bản
Thiết kế khả thi tối thiểu
Rủi ro chính
Theo dõi 200 trang đã biết
Danh sách URL, bộ cạo, bộ lập lịch
Bộ chọn cũ và các biến thể đã thay đổi
Kiểm kê tài liệu
Bộ thu thập giới hạn, thu thập tiêu đề/trạng thái
Các con đường truy vấn vô hạn
Theo dõi thay đổi danh mục
Bộ thu thập, bộ phân loại, bộ cạo
Các biến thể và đơn vị trùng lặp
Cung cấp chỉ mục truy xuất
Bộ thu thập, trích xuất văn bản sạch, phiên bản hóa
Làm mẫu và nguồn thông tin lỗi thời
Các đội nên đo lường chất lượng như thế nào?
Đo lường độ bao phủ của bộ thu thập chống lại một tham chiếu độc lập, chẳng hạn như một bản đồ trang được phê duyệt hoặc các đường dẫn danh mục được mẫu thủ công. Báo cáo các URL đủ điều kiện đã phát hiện, các URL mới, tỷ lệ chuyển hướng, thất bại khi lấy dữ liệu và tuổi của biên giới. Xử lý hàng nghìn trang sẽ không có ích nếu một danh mục quan trọng bị thiếu.
Đo lường chất lượng bộ cạo ở cấp trường. Mẫu các hồ sơ và tính toán độ chính xác của tiêu đề, tỷ lệ trường thiếu, độ chính xác khi phân tích, và phân loại trang dương tính giả. Tách biệt "trường vắng mặt trong nguồn" khỏi "bộ trích xuất thất bại." Bảo tồn phiên bản trang và thời gian quan sát để các nhà phân tích có thể tái tạo những giá trị bị tranh chấp. Những chỉ số này có nhiều thông tin hơn một "tỷ lệ thành công."
Đo lường đường ống kết hợp như thời gian từ khi một trang xuất hiện đến bản ghi hợp lệ đầu tiên của nó, chi phí cho mỗi quan sát hợp lệ và thời gian để phát hiện các bản ghi xấu. Một trình thu thập thông tin nhanh chóng nhưng lại cấp một trình phân tích không đáng tin cậy không phải là một đường ống dữ liệu nhanh; một trình phân tích hoàn hảo với một biên giới cũ không cung cấp sự bao phủ mới.
Truy cập có trách nhiệm và quản trị dữ liệu
Trước khi thu thập, xác định xem nội dung có công khai hay không, các điều khoản và hướng dẫn cho robot nào áp dụng, liệu có API chính thức nào tồn tại hay không và bạn có quyền lưu trữ hoặc tái sử dụng kết quả hay không. Áp dụng giới hạn tỷ lệ và xác định khách hàng của bạn khi cần thiết. Xác thực không khiến nội dung riêng tư trở thành công khai; một trang có thể xem công khai không tự động không bị hạn chế cho mọi sử dụng hạ nguồn.
Các quy tắc của robot là tín hiệu truy cập có thể đọc bằng máy, không phải mô hình quyền pháp lý hoặc đạo đức hoàn chỉnh. Đối với dữ liệu cá nhân hoặc liên hệ, hãy giảm thiểu việc thu thập và đặt giới hạn lưu trữ. Nếu dữ liệu cung cấp cho một mô hình hoặc sản phẩm công khai, hãy xem xét các nghĩa vụ cấp phép và xóa bỏ riêng biệt với phương pháp thu thập. Hướng dẫn lượt proxy có thể giúp với kỹ thuật yêu cầu, nhưng việc thay đổi địa chỉ IP không bao giờ cấp quyền truy cập.
Kết luận
Một trình thu thập thông tin trả lời “các trang nào chúng ta nên truy cập?” Một trình thu thập dữ liệu trả lời “dữ liệu đáng tin cậy nào nằm trên các trang đó?” Các hợp đồng, trạng thái thất bại và chỉ số tách biệt làm cho sự phân biệt đó trở nên có thể hoạt động. Bắt đầu với danh sách URL cố định nếu nó bao phủ trường hợp sử dụng; thêm một trình thu thập có giới hạn chỉ khi việc khám phá cần thiết. Giữ các phản hồi thô, bản ghi đã phân tích và nguồn gốc tách biệt để việc sửa chữa không viết lại lịch sử.
Thử một quy trình trích xuất có giới hạn
Đối với các URL công khai được ủy quyền, đánh giá Nstdata Crawl trên một tập nhỏ đại diện. Giữ lại URL nguồn, thời gian quan sát và đánh giá cấp trường trong đường ống của riêng bạn.
Q: Googlebot là một trình thu thập thông tin hay một trình thu thập dữ liệu?
Googlebot chủ yếu là một trình thu thập thông tin: nó phát hiện và lấy các trang cho quy trình lập chỉ mục của Google. Các hệ thống khác xử lý nội dung sau đó, nhưng điều đó không làm cho hai trách nhiệm trở nên hoán đổi cho nhau.
Q: Beautiful Soup có thể thu thập một trang web không?
Beautiful Soup phân tích HTML; nó không lập lịch các URL, lấy các trang hoặc quản lý một biên giới một mình. Mã Python có thể kết hợp nó với một khách hàng HTTP và hàng đợi để xây dựng một trình thu thập thông tin, hoặc chỉ sử dụng nó để trích xuất từ các trang đã biết.
Q: API có phải là một trình thu thập dữ liệu không?
API là một giao diện để lấy dữ liệu, không tự nó là một trình thu thập dữ liệu. Một API nền tảng chính thức có thể cung cấp dữ liệu có cấu trúc được ủy quyền mà không phải thu thập trang; một "API trình thu thập dữ liệu" của bên thứ ba có thể lấy và phân tích các trang phía sau giao diện đó.
Q: Nên lưu trữ gì để tái tạo?
Lưu giữ URL nguồn, URL cuối cùng, dấu thời gian quan sát, phiên bản trích xuất và đủ bằng chứng trang thô hoặc tham chiếu chụp nhanh để điều tra các trường tranh chấp. Giữ lại dữ liệu cá nhân chỉ với mục đích hợp pháp và chính sách lưu trữ đã xác định.
Lena Zhou
Oct. 13th 2026
Thu thập toàn bộ trang web chỉ với một yêu cầu API
Tỷ lệ thành công 99,8% với kết xuất JavaScript
Nhận dữ liệu sạch, sẵn sàng cho LLM ở nhiều định dạng
Chuyển mọi trang web thành Markdown, HTML, JSON, liên kết, PDF và hơn thế nữa mà không cần quản lý hạ tầng thu thập dữ liệu.