Bỏ qua tới nội dung chính
Quay lại tin tức

Thu thập dữ liệu 7.000 trang web trong 3 phút bằng Python và Olostep

KDnuggets· Abid Ali Awan· 5/11/2026general

Trích xuất dữ liệu từ hàng nghìn trang web chỉ trong vài phút bằng Olostep Batch API, tải về định dạng Markdown và đo lường chính xác kết quả hoàn thành trên thực tế.

--> Thu thập dữ liệu 7.000 trang web trong 3 phút bằng Python và Olostep - KDnuggets --> Nhật ký điện tử Bài viết nổi bật Giới thiệu Chủ đề AI Lời khuyên nghề nghiệp Thị giác máy tính Kỹ thuật dữ liệu Khoa học dữ liệu Mô hình ngôn ngữ Học máy MLOps NLP Lập trình Python SQL Tập dữ liệu Sự kiện Tài nguyên Tài liệu tóm tắt Đề xuất Bản tin công nghệ Quảng cáo Đăng ký nhận bản tin Thu thập dữ liệu 7.000 trang web trong 3 phút bằng Python và Olostep Thu thập hàng nghìn trang web trong vài phút với Olostep Batch API, tải dữ liệu định dạng Markdown và đánh giá kết quả thực tế. Tác giả: Abid Ali Awan, Trợ lý Biên tập KDnuggets, ngày 5/11/2026, chuyên mục Python --> Quá trình thu thập dữ liệu từ hàng nghìn trang web có thể mất nhiều giờ, đặc biệt đối với các hoạt động thu thập dữ liệu phục vụ ứng dụng doanh nghiệp, nghiên cứu thị trường, theo dõi biến động giá hoặc triển khai các hệ thống AI quy mô lớn. Thách thức đặt ra không chỉ nằm ở tốc độ trích xuất dữ liệu, mà còn ở việc bảo đảm quy trình có độ tin cậy cao, khả năng mở rộng linh hoạt và dễ quản lý. Thử nghiệm được tiến hành nhằm đánh giá tốc độ thu thập 10.000 trang web khi sử dụng Python và Olostep Batch API. Kết quả ghi nhận 7.225 trang được xử lý trong vòng chưa đầy 3 phút. Tuy nhiên, toàn bộ quy trình, bao gồm các khâu thu thập, tải xuống và xác thực kết quả, kéo dài 22 phút 26 giây. Trong tổng số 10.000 địa chỉ URL, 9.938 trang đã được lưu thành công dưới dạng tệp Markdown. Nội dung sau đây hướng dẫn phương pháp sử dụng Python và Olostep để thu thập hàng nghìn trang web trong một lượt xử lý hàng loạt, theo dõi tiến độ, tải nội dung và xác thực kết quả; đồng thời phản ánh các số liệu hiệu năng thực tế, bao gồm những khía cạnh vận hành hiệu quả và những điểm nghẽn làm chậm tiến độ. Cơ chế hoạt động của Olostep Batch API Olostep Batch API cho phép trích xuất dữ liệu tối đa 10.000 URL trong một lượt xử lý hàng loạt, thay vì phải gửi hàng nghìn yêu cầu riêng lẻ. Giao diện này chịu trách nhiệm xử lý tác vụ, trong khi người dùng có thể theo dõi tiến độ, tiếp nhận kết quả hoàn tất và tải về nội dung đã trích xuất. Olostep đang mở rộng định hướng phát triển, từ các công cụ thu thập dữ liệu dành cho lập trình viên sang cung cấp hạ tầng dữ liệu web cho doanh nghiệp. Theo đại diện đồng sáng lập nền tảng, hệ thống có khả năng xử lý 100.000 trang trong chưa đầy 25 phút đối với các khối lượng công việc cấp doanh nghiệp. Quy mô này đáp ứng tốt nhu cầu của các tổ chức thường xuyên thu thập lượng lớn dữ liệu web phục vụ nghiên cứu thị trường, theo dõi đối thủ cạnh tranh, phân tích thông tin sản phẩm và phát triển các ứng dụng AI. Trong thử nghiệm này, Olostep Python SDK được sử dụng để thu thập 10.000 trang tài liệu MDN và lưu nội dung dưới dạng tệp Markdown. Quy trình làm việc gồm năm bước: Chuẩn bị danh sách URL: Tải tệp sơ đồ trang web (sitemap) của MDN và chọn ra 10.000 trang riêng biệt. Gửi lệnh xử lý hàng loạt: Chuyển toàn bộ danh sách URL tới Olostep trong một tác vụ duy nhất. Theo dõi tiến độ: Giám sát số lượng trang hoàn tất cho đến khi kết thúc quy trình thu thập. Tải kết quả: Tiếp nhận nội dung đã xử lý và lưu dưới định dạng Markdown. Xác thực tệp: Kiểm tra các tệp đã lưu, xác định các kết quả bị thiếu và đo lường tổng thời gian thực hiện. Sơ đồ quy trình làm việc dưới đây minh họa toàn bộ quá trình, từ khâu tập hợp URL đến khâu nghiệm thu dữ liệu đầu ra. Một yếu tố then chốt cần lưu ý là một lượt xử lý hoàn tất không đồng nghĩa với việc mọi trang web đều được lưu thành công. Trong thử nghiệm này, 9.938 trên 10.000 trang được lưu trữ đầy đủ, ghi nhận 62 trường hợp bị thiếu. Do đó, việc xác thực kết quả đóng vai trò quan trọng tương đương với tốc độ thu thập dữ liệu, đặc biệt khi xây dựng các đường ống dữ liệu (data pipeline) đòi hỏi độ chuẩn xác cao. Thu thập 10.000 trang dữ liệu bằng Olostep Batch API Giao diện lập trình ứng dụng xử lý hàng loạt của Olostep (Olostep Batch API) được sử dụng để thu thập dữ liệu từ 10.000 trang tài liệu MDN, tải nội dung dưới dạng các tệp tin Markdown và xác minh số lượng trang thu thập thành công. Thử nghiệm được thực hiện trên nền tảng Python phiên bản 3.13.15 và Olostep SDK phiên bản 1.2.2. Quy trình bao gồm sáu bước, từ thiết lập môi trường đến kiểm tra kết quả cuối cùng. Quá trình thực hiện yêu cầu khóa giao diện lập trình ứng dụng (API key) của Olostep. Khóa này có thể được thiết lập dưới dạng biến môi trường (OLOSTEP_API_KEY) hoặc nhập trực tiếp khi hệ thống yêu cầu nhằm bảo đảm an toàn thông tin. Lưu ý: Việc gửi một lô tác vụ mới sẽ tiêu tốn điểm tín dụng API (credits). Do đó, người dùng cần bảo đảm tài khoản có đủ số dư trước khi vận hành mã nguồn. 1. Cài đặt SDK Khởi tạo một tệp Jupyter Notebook mới hoặc sử dụng sổ tay điện tử đi kèm hướng dẫn. Tại ô lệnh đầu tiên, tiến hành cài đặt Olostep Python SDK cùng thư viện requests để truy xuất sơ đồ trang web (sitemap) của MDN và thư viện tqdm nhằm theo dõi tiến trình thu thập dữ liệu. %pip -q install olostep==1.2.2 requests tqdm 2. Cấu hình Client Tiếp theo, tiến hành thiết lập máy khách (client) Olostep bằng API key, tạo thư mục lưu trữ dữ liệu đã thu thập và định nghĩa một số hàm bổ trợ để lưu cũng như xác thực kết quả. Đồng thời, một giải pháp xử lý tạm thời được áp dụng đối với sự cố phản hồi trên phiên bản SDK 1.2.2 nhằm bảo đảm việc kiểm tra trạng thái của lô tác vụ diễn ra chính xác, không phát sinh lỗi. import asyncio, csv, gzip, hashlib, json, os, random, time from datetime import datetime, timezone from getpass import getpass from pathlib import Path from xml.etree import ElementTree as ET import requests from olostep import AsyncOlostep from olostep.errors import OlostepClientError_ResponseValidationFailed from olostep.models.response import BatchInfoResponse from tqdm import tqdm N = 10000 MAX_WAIT_SECONDS = 2400 DATA = Path("data"); DATA.mkdir(exist_ok=True) client = AsyncOlostep(api_key=os.getenv("OLOSTEP_API_KEY") or getpass("Olostep API key: ")) def write_json(path, value): path.write_text(json.dumps(value, indent=2), encoding="utf-8") def valid_file(path): try: return path.is_file() and bool(path.read_text(encoding="utf-8").strip()) except (OSError, UnicodeError): return False async def batch_info(batch_id): try: return await client.batches.info(batch_id) except OlostepClientError_ResponseValidationFailed as error: return BatchInfoResponse.model_validate({"parser": "none", **json.loads(error.response.body)}) 3. Xây dựng tập dữ liệu URL Tiếp tục tải xuống sơ đồ trang web của MDN và lựa chọn ngẫu nhiên 10.000 tài liệu duy nhất

Nguồn tin: KDnuggets — Tác giả: Abid Ali Awan. Bản dịch tiếng Việt do AI thực hiện, có thể có sai sót.