Web scraping không phải là một khái niệm mới vì toàn bộ Internet đều dựa trên nó. Ví dụ, khi bạn chia sẻ liên kết video Youtube trên Facebook, dữ liệu của video đó sẽ được scraping để mọi người có thể thấy hình thu nhỏ của video trong bài đăng của bạn. Do đó, có vô số cách để sử dụng data scraping vì lợi ích của mọi người. Nhưng có
Web scraping không phải là khái niệm mới vì toàn bộ Internet đều dựa trên khái niệm này. Ví dụ, khi bạn chia sẻ liên kết video Youtube trên Facebook, dữ liệu của video đó sẽ được scraping để mọi người có thể thấy hình thu nhỏ của video trong bài đăng của bạn. Do đó, có vô số cách để sử dụng data scraping vì lợi ích của mọi người. Nhưng có một số khía cạnh đạo đức liên quan đến việc scraping dữ liệu từ web.
Giả sử bạn đăng ký một chương trình bảo hiểm y tế và bạn vui vẻ cung cấp thông tin cá nhân của mình cho nhà cung cấp để đổi lấy dịch vụ mà họ cung cấp. Nhưng nếu một người lạ nào đó thực hiện phép thuật trích xuất dữ liệu web với dữ liệu của bạn và sử dụng nó cho mục đích cá nhân thì sao. Mọi thứ có thể bắt đầu trở nên không phù hợp, phải không? Đây chính là lúc cần thực hành trích xuất dữ liệu web có đạo đức.
Trong bài viết này, chúng ta sẽ thảo luận về quy tắc ứng xử khi thu thập dữ liệu web và những cân nhắc về mặt pháp lý và đạo đức.
Để thực hành trích xuất dữ liệu web hợp pháp, bạn cần tuân thủ các quy tắc đơn giản sau.
Đừng phá vỡ Internet – Bạn cần biết rằng không phải tất cả các trang web đều có thể chịu được hàng nghìn yêu cầu mỗi giây. Một số trang web cho phép điều đó, nhưng những trang web khác có thể chặn bạn nếu bạn gửi nhiều yêu cầu bằng cùng một địa chỉ IP. Ví dụ, nếu bạn viết một trình thu thập dữ liệu theo siêu liên kết, trước tiên bạn nên thử nghiệm nó trên một tập dữ liệu nhỏ hơn và đảm bảo nó thực hiện đúng chức năng của nó. Ngoài ra, bạn cần điều chỉnh cài đặt của trình thu thập dữ liệu để có độ trễ giữa các yêu cầu.
Xem tệp robots.txt – Các trang web sử dụng tệp robots.txt để cho bot biết liệu trang web có thể được thu thập dữ liệu hay không. Khi trích xuất dữ liệu từ web, bạn cần hiểu và tôn trọng tệp robots.txt một cách nghiêm túc để tránh hậu quả pháp lý.
Chia sẻ những gì bạn có thể – Nếu bạn được phép thu thập dữ liệu trong phạm vi công cộng và thu thập dữ liệu đó, bạn có thể đưa dữ liệu đó ra ngoài (ví dụ: trên datahub.io) để những người khác có thể sử dụng lại. Nếu bạn viết một trình thu thập dữ liệu web, bạn có thể chia sẻ mã của trình thu thập dữ liệu đó (ví dụ: trên Github) để những người khác có thể hưởng lợi từ nó.
Không chia sẻ nội dung đã tải xuống bất hợp pháp – Đôi khi, việc thu thập dữ liệu cho mục đích cá nhân là được, ngay cả khi thông tin đó có bản quyền. Tuy nhiên, việc chia sẻ dữ liệu mà bạn không có quyền chia sẻ là bất hợp pháp.
Bạn có thể yêu cầu một cách lịch sự – Nếu bạn cần dữ liệu từ một tổ chức cụ thể cho dự án của mình, bạn có thể hỏi trực tiếp xem họ có thể cung cấp cho bạn dữ liệu bạn mong muốn hay không. Nếu không, bạn cũng có thể sử dụng thông tin chính của tổ chức trên trang web của tổ chức đó và tránh khỏi rắc rối khi tạo trình thu thập dữ liệu web.
Bạn cần ghi nhớ những nguyên tắc đạo đức dưới đây khi thu thập dữ liệu từ web.
Bạn cần biết rằng việc trích xuất dữ liệu web có thể là bất hợp pháp trong một số trường hợp nhất định. Nếu các điều khoản và điều kiện của trang web mà chúng tôi muốn trích xuất dữ liệu cấm người dùng sao chép và tải xuống nội dung, thì chúng tôi không nên trích xuất dữ liệu đó và tôn trọng các điều khoản của trang web đó.
Bạn có thể trích xuất dữ liệu không nằm sau hệ thống xác thực được bảo vệ bằng mật khẩu (dữ liệu công khai), lưu ý rằng bạn không làm hỏng trang web. Tuy nhiên, có thể có vấn đề tiềm ẩn nếu bạn chia sẻ dữ liệu đã trích xuất thêm. Ví dụ, nếu bạn tải xuống nội dung từ một trang web và đăng lên trang web khác, hành vi trích xuất của bạn sẽ bị coi là bất hợp pháp và vi phạm bản quyền.
Bất cứ khi nào bạn viết một trình thu thập dữ liệu web, bạn sẽ truy vấn một trang web nhiều lần và có khả năng truy cập vào số lượng lớn các trang của trang web đó. Đối với mỗi trang, một yêu cầu được gửi đến máy chủ web lưu trữ trang web đó. Máy chủ xử lý yêu cầu và gửi phản hồi trở lại máy tính chạy mã. Các yêu cầu mà chúng ta gửi sẽ tiêu tốn tài nguyên của máy chủ. Vì vậy, nếu chúng ta gửi quá nhiều yêu cầu trong một khoảng thời gian ngắn, chúng ta có thể ngăn những người dùng thông thường khác truy cập vào trang web trong thời gian đó.
Tin tặc thường thực hiện các cuộc tấn công Từ chối dịch vụ (DoS) để tắt mạng hoặc máy, khiến người dùng không thể truy cập được. Chúng thực hiện điều này bằng cách gửi thông tin đến máy chủ gây ra sự cố hoặc bằng cách làm ngập trang web mục tiêu bằng lưu lượng truy cập.
Hầu hết các máy chủ web hiện đại đều bao gồm các biện pháp ngăn chặn việc sử dụng trái phép tài nguyên của chúng, vì các cuộc tấn công DoS rất phổ biến trên Internet. Chúng cảnh giác với số lượng lớn các yêu cầu đến từ một địa chỉ IP duy nhất. Chúng có thể chặn địa chỉ đó nếu nó gửi nhiều yêu cầu trong một khoảng thời gian ngắn.
Bạn nên hỏi người quản lý hoặc chủ sở hữu dữ liệu mà bạn định trích xuất, tùy thuộc vào phạm vi dự án của bạn. Bạn có thể hỏi họ xem họ có dữ liệu có sẵn ở định dạng có cấu trúc phù hợp với nhu cầu dự án của bạn không. Nếu bạn muốn sử dụng dữ liệu của họ cho mục đích nghiên cứu theo cách có khả năng khiến họ quan tâm, bạn có thể tránh khỏi rắc rối khi viết trình trích xuất web.
Bạn cũng có thể giúp người khác không phải mất công viết web scraper. Ví dụ, nếu bạn xuất bản dữ liệu hoặc tài liệu của mình như một phần của dự án nghiên cứu, ai đó có thể muốn lấy dữ liệu của bạn để sử dụng. Nếu muốn, bạn có thể cung cấp cho người khác cách tải xuống dữ liệu thô của mình ở định dạng có cấu trúc, do đó tiết kiệm
Quyền riêng tư dữ liệu và luật bản quyền khác nhau tùy theo quốc gia. Bạn cần kiểm tra luật áp dụng trong bối cảnh của mình. Ví dụ, ở các quốc gia như Úc, việc thu thập thông tin cá nhân như số điện thoại, địa chỉ email và tên là bất hợp pháp ngay cả khi chúng được công khai.
Bạn nên tuân thủ quy tắc ứng xử của web scraping để thu thập dữ liệu cho mục đích sử dụng cá nhân. Tuy nhiên, nếu bạn muốn thu thập lượng lớn dữ liệu cho mục đích thương mại hoặc nghiên cứu, có lẽ bạn phải tìm kiếm tư vấn pháp lý.
Bạn biết rằng proxy có nhiều ứng dụng khác nhau. Mục đích chính của chúng là ẩn địa chỉ IP và vị trí của người dùng. Proxy cũng cho phép người dùng truy cập nội dung bị hạn chế về mặt địa lý khi lướt Internet. Do đó, người dùng có thể truy cập các trang ẩn vì proxy bỏ qua nội dung và hạn chế về mặt địa lý.
Bạn có thể sử dụng proxy để tối đa hóa đầu ra của trình thu thập dữ liệu vì chúng làm giảm tỷ lệ chặn. Nếu không có chúng, bạn có thể thu thập dữ liệu tối thiểu từ web. Đó là vì proxy vượt quá tỷ lệ thu thập dữ liệu cho phép các trình thu thập dữ liệu trích xuất nhiều dữ liệu hơn. Tỷ lệ thu thập dữ liệu cho biết số lượng yêu cầu bạn có thể gửi trong một khung thời gian nhất định. Tỷ lệ này thay đổi tùy theo từng trang web.
Bạn có thể chọn proxy tùy thuộc vào yêu cầu của dự án. Bạn có thể sử dụng proxy riêng hoặc proxy chia sẻ.
Bạn có thể xác định nguồn IP ngoài việc chọn proxy cho dự án của mình. Có ba loại máy chủ proxy.
Proxy trung tâm dữ liệu – Đây là proxy rẻ nhất và thiết thực nhất để thu thập dữ liệu web. Các IP này được tạo trên các máy chủ độc lập và được sử dụng hiệu quả để thực hiện các dự án thu thập dữ liệu quy mô lớn.
Proxy dân dụng – Có thể khó có được vì chúng liên kết với bên thứ ba.
Proxy di động – Đây là loại đắt nhất và rất hữu ích nếu bạn phải thu thập dữ liệu chỉ hiển thị trên thiết bị di động.
Cho đến nay, chúng ta đã thảo luận rằng bạn có thể trích xuất dữ liệu từ Internet bằng cách ghi nhớ các cân nhắc về mặt pháp lý và đạo đức. Ví dụ, bạn không nên đánh cắp dữ liệu từ web. Bạn không thể chia sẻ dữ liệu mà bạn không có quyền. Nếu bạn cần dữ liệu của một tổ chức cho dự án của mình, bạn có thể lịch sự yêu cầu họ chia sẻ dữ liệu thô của họ ở định dạng có cấu trúc. Nếu không, bạn có thể viết trình thu thập dữ liệu web của mình để trích xuất dữ liệu từ trang web nếu họ cho phép. Ngoài ra, chúng ta đã thảo luận rằng bạn có thể chọn các proxy khác nhau tùy thuộc vào nhu cầu của dự án. Bạn có thể sử dụng trung tâm dữ liệu hoặc IP dân dụng vì chúng được sử dụng rộng rãi để thu thập dữ liệu web.