Công cụ thu thập dữ liệu website (scraper): cách lấy dữ liệu từ web

Chép giá từ website của nhà cung cấp vào bảng tính bằng tay thì được với hai mươi sản phẩm. Với hai nghìn sản phẩm, việc đó ngốn cả tuần mà vẫn có lỗi gõ. Công cụ thu thập dữ liệu website (còn gọi là scraper hay parser) là một chương trình nhỏ mở các trang thay bạn, lấy cùng những mẩu thông tin từ mỗi trang và lưu thành bảng. Dưới đây là những gì nó làm được, cần chuẩn bị gì và những quy tắc cần tuân theo.

Scraper hữu ích cho việc gì
Scraper hữu ích bất cứ khi nào cùng một loại thông tin nằm trên nhiều trang giống nhau:
- Giá và tồn kho. Theo dõi giá của nhà cung cấp thay đổi thế nào hoặc mặt hàng nào đã hết.
- Danh mục sản phẩm của nhà cung cấp. Chuyển tên, mô tả, hình ảnh và giá vào cửa hàng của bạn.
- Tin đăng. Gom tin đăng bất động sản, ô tô hoặc việc làm từ một trang rao vặt công khai vào một bảng.
- Sự kiện và bài viết. Thu thập ngày, tiêu đề và liên kết từ một lịch sự kiện hoặc trang tin tức công khai.
Chỉ thu thập những gì được phép
Trước hết, hãy kiểm tra xem dữ liệu có được phép lấy không:
- Chỉ trang công khai. Nếu phải đăng nhập mới xem được dữ liệu, scraper không phải là công cụ phù hợp.
- Đọc điều khoản của website. Nhiều website ghi rõ được và không được thu thập những gì. Các nền tảng lớn, công cụ tìm kiếm và mạng xã hội thường cấm việc này; hãy dùng chức năng xuất dữ liệu chính thức hoặc API của họ.
- Tôn trọng giới hạn tần suất. Nghỉ vài giây giữa các trang giúp giữ tải thấp cho website. Đừng bao giờ tìm cách vượt qua captcha hay cơ chế chặn.
- Tuân thủ luật bảo vệ dữ liệu cá nhân. Tên, email và số điện thoại của một người là dữ liệu cá nhân, và nhiều quốc gia giới hạn chặt việc thu thập chúng. Hãy bỏ qua những dữ liệu này.
Cuối cùng, việc bạn có được thu thập và sử dụng dữ liệu của một website hay không là quyết định của bạn, vì vậy hãy kiểm tra trước khi bắt đầu.
Mô tả các trang
Scraper được viết theo cấu trúc thực tế của các trang, vì vậy hãy mô tả chính xác:
- Liên kết đến một trang danh sách và liên kết đến một trang sản phẩm.
- Khoảng bao nhiêu trang, ví dụ “khoảng 40 trang danh sách, mỗi trang 24 sản phẩm”.
- Một hai trang lưu từ trình duyệt (Tệp > Lưu trang thành) hoặc ảnh chụp màn hình các trang đó.
Liệt kê các trường như cột của bảng
Hãy hình dung kết quả là một bảng tính và đặt tên các cột theo thứ tự, kèm ví dụ cho mỗi cột:
- Tên: “Thớt gỗ sồi, cỡ lớn”
- Giá: “34.90”
- Giá cũ: “39.90”, nếu sản phẩm đang giảm giá
- Còn hàng: “có”
- Liên kết đến trang sản phẩm và liên kết đến hình ảnh
Mười trường rõ ràng tốt hơn ba mươi trường mơ hồ. Thêm mọi quy tắc bạn cần, như “chỉ lấy sản phẩm còn hàng”.
Chọn định dạng và nơi chạy
- CSV mở được trong mọi bảng tính và nhập được vào hầu hết hệ thống cửa hàng.
- Excel tiện hơn nếu bạn sẽ lọc và sắp xếp bằng tay.
- JSON phù hợp với lập trình viên sẽ nạp dữ liệu vào nơi khác.
Scraper chạy trên máy tính của chính bạn với Python, nên dữ liệu đến thẳng tay bạn, và bạn có thể chạy lại bất cứ khi nào cần số liệu mới.
Khi website thay đổi
Scraper đi theo các trang như chúng trông hôm nay. Nếu website đổi giao diện, scraper có thể không còn tìm thấy các trường và cần được cập nhật. Website cũng có thể giới hạn lượt truy cập ngay cả khi tốc độ đã chừng mực. Hãy tính đến điều này nếu bạn dựa vào dữ liệu hằng tuần.
Tóm lại
Xác định những trang công khai và trường dữ liệu bạn cần, kiểm tra điều khoản của website, giữ tốc độ chừng mực và bỏ qua dữ liệu cá nhân. Nếu bạn không muốn tự viết code, hãy đặt scraper cho website: bạn gửi website, các trường dữ liệu và một hai trang đã lưu, rồi nhận code Python, tệp cấu hình và hướng dẫn từng bước để chạy và xuất ra CSV, Excel hoặc JSON. Khoản thanh toán chỉ được chuyển đi sau khi bạn chấp nhận kết quả.