Với 1,8 tỷ trang web hiện có, ta sẽ nghĩ rằng rất nhiều người đang liên tục tạo và sử dụng nội dung internet. Mặc dù, trên thực tế, trong số 1,8 tỷ này, chỉ có 200 triệu trang web (11%) đang hoạt động; và trong số lưu lượng truy cập đang có, hơn 60% là do bot tạo ra. Nói rõ hơn: khi phát hiện hoạt động bất thường trên trang web thì bạn nên đặt nghi vấn. Có khả năng là các bot đang cố lấy cắp dữ liệu hoặc nội dung, hay còn được gọi là web scraping.

Web scraping là gì?

Web scraping là quá trình trích xuất hoặc truy xuất dữ liệu từ một trang web. Điều này có thể được thực hiện thủ công hoặc tự động. Hình thức web scraping thấp nhất chính là mô hình sao chép và dán thủ công. Ở cấp độ “chuyên nghiệp” hơn, có vô số công cụ, từ phần mềm trả phí đến các thư viện Python miễn phí. Các tập lệnh tự động phát hiện URL của ta, ngụy trang với tư cách người dùng và bắt đầu vào các URL của ta để trích xuất dữ liệu. Sự bùng nổ hoạt động dồn dập này thường làm giảm hiệu suất của trang và có thể dễ dàng dẫn đến sự suy giảm thương hiệu.

Web scraping được dùng để làm gì?

Web scrapers có thể được dùng cho một số mục đích phi pháp, trong đó có:

  • theo dõi hành vi người dùng cho các mục đích nghiên cứu hoặc tiếp thị;
  • phân tích thị trường (giám sát đối thủ, tổng hợp tin tức, thông tin chi tiết về giá...);
  • giám sát thương hiệu;
  • thu thập và tổng hợp thông tin miễn phí (chẳng hạn như khai thác dữ liệu được thực hiện trên kho dữ liệu công cộng, danh sách bất động sản và các ứng dụng thời tiết thu thập thông tin từ các nguồn internet);
  • theo dõi các thay đổi của trang web.

Mặt khác, hoạt động web scraping phi đạo đức lấy thông tin cho các mục đích như:

  • thu thập thông tin liên hệ một cách bất hợp pháp;
  • ăn cắp nội dung;
  • làm giảm hiệu suất trang web;
  • làm cạn kiệt tài nguyên trang web.

Ngày nay, tạo ra nội dung độc đáo thôi thì chưa đủ. Ta cũng phải tích cực bảo vệ nội dung của mình và thông tin mà trang web của ta chứa đựng, khỏi những mối đe dọa như thế. Để làm được điều này, ta phải hiểu web scraping là gì - và không phải là gì.

Web scraping vs web crawling

Web crawling là hoạt động mà một bot (một tập lệnh tự động) thực hiện để truy xuất và lập chỉ mục thông tin về một trang web. Các công cụ tìm kiếm có thể cung cấp kết quả tìm kiếm vì chúng thu thập thông tin và lập chỉ mục hầu như toàn bộ mạng internet để tìm kiếm các kết quả phù hợp với từ khóa, các tín hiệu cấp quyền...

Web crawling có nghĩa là khám phá các tập dữ liệu chung đầy đủ để lập chỉ mục thông tin về các trang web. Mặt khác, web scraping đi xa hơn nữa để trích xuất các tập dữ liệu cụ thể nhằm phân tích và khai thác chúng cho một mục đích cụ thể.

Web scraping vs khai thác dữ liệu

Khai thác dữ liệu là hành động tìm kiếm và trích xuất một lượng lớn dữ liệu thô từ hầu như bất kỳ nguồn nào, với mục đích phân tích các tập dữ liệu để lấy thông tin và kiến thức.

Web scraping cũng có thể được sử dụng cho mục đích khai thác dữ liệu. Tuy nhiên, dữ liệu cũng có thể được khai thác từ nhiều nguồn khác nhau, chẳng hạn như các tập dữ liệu riêng tư hoặc công khai (cơ sở dữ liệu) hoặc các cookie. Việc khai thác dữ liệu có thể cung cấp thông tin về xu hướng dịch bệnh, hành vi người mua và sự thành công tiếp thị, thời tiết và nhiều nữa.

Web scraping vs screen scraping

Web scraping trích xuất thông tin cụ thể bên trong trang web thông qua các yêu cầu html và https. Screen scraping thì thu thập các pixel, tức là dữ liệu hiển thị trên màn hình. Nó phát hiện dữ liệu trực quan được hiển thị trên màn hình và thu thập các yếu tố trên màn hình (văn bản hoặc hình ảnh).

Screen scraping thường được sử dụng để theo dõi hoạt động hoặc hành trình của người dùng trên một trang web, để trích xuất thông tin về trang web của công ty, hoặc để đánh cắp thông tin cá nhân của người dùng.

Web scraping được thực hiện thế nào?

Sao chép/dán không phải là một kỹ thuật scraping có thể mở rộng. Mối đe dọa thực sự đến từ các hình thức scraping tiên tiến hơn, rẻ hơn và ít sử dụng nguồn lực hơn.

Các ngôn ngữ lập trình, đặc biệt là Python, thường được dùng để trích xuất thông tin bằng các lệnh regex hoặc grep đơn giản. Việc phân tích cú pháp giúp hiểu mã html nhận được sau lệnh. Sau đó, thông tin được giải mã và tập hợp lại thành một định dạng dễ đọc.

Toàn bộ quá trình có thể mất từ vài phút đến hàng giờ, tùy thuộc vào số lượng dữ liệu.

Cách bảo vệ chống lại web scraping

Làm cách nào để đảm bảo rằng, Google chẳng hạn, vẫn có thể thu thập thông tin và lập chỉ mục trang web của ta, nhưng nội dung của ta vẫn an toàn và vẫn độc nhất? Ta cần luôn cảnh giác và tích cực nỗ lực bảo vệ dữ liệu, sử dụng bất kỳ giải pháp nào được mô tả bên dưới phù hợp nhất với mình.

Phần mềm quản lý bot chuyên dụng

  • Công nghệ CAPTCHA, chẳng hạn như reCAPTCHA Enterprise, là một lớp bảo mật để ngăn các tập lệnh truy cập vào nội dung.
  • Cloudflare không chỉ cung cấp sự bảo vệ CDN và DDoS mà còn bảo mật giảm thiểu bot.
  • Imperva (trước đây là Distil Networks) là một công cụ kiểm soát lưu lượng truy cập độc hại trên internet, phát hiện và vô hiệu hóa các bot độc hại.
  • DataDome là một dịch vụ khác cung cấp khả năng bảo vệ chống lại scraping, scalping, stuffing thông tin xác thực, các cuộc tấn công DDoS và gian lận thẻ.

Các kỹ thuật chống scraping khác

  • Robots.txt là một file hướng dẫn các công cụ tìm kiếm phải thu thập và lập chỉ mục những gì cho phép truy cập vào các bot hợp pháp nhưng từ chối quyền truy cập vào các tập lệnh đáng ngờ.
  • Chứng chỉ SSL có dạng một phần mở rộng bảo mật (security extension) giúp bảo vệ thông tin người dùng. Điều này hữu ích vì không chỉ để chống lại web scraping mà còn là một mức độ bảo mật chung tối thiểu.
  • Hãy phát hiện các kiểu duyệt web giống bot, chẳng hạn như số lượt xem bất thường đối với một mặt hàng, theo dõi các tài khoản này và chặn các địa chỉ IP nhất định. Đối với điều này, ta có thể sử dụng định vị địa lý hoặc có thể tra cứu danh sách chặn dựa trên DNS.
  • Chặn các yêu cầu HTTP với tiêu đề User-Agent không mong muốn.
  • Thay đổi html của mình thường xuyên, ít nhất là ở cấp id và cấp lớp. Bởi vì các scrapers phân tích cú pháp những mẫu html và chia nhỏ mã đánh dấu của ta, nên những thay đổi nhỏ nhất cũng có thể khiến chúng đi chệch hướng.
  • Thêm các honeypot để bẫy các scraper. Điều này thường được thực hiện bằng cách tạo các trang giả mà chỉ những gì không phải con người mới có thể truy cập. Nếu phát hiện hoạt động trên các trang này, ta có thể chặn IP một cách an toàn.
  • Các yêu cầu throttle, tức là giới hạn số lượng yêu cầu/hành động trong một khung thời gian nhất định.
  • Thực thi các Điều khoản và Điều kiện bằng cách yêu cầu người dùng đánh dấu vào một ô.

Kết luận

Dữ liệu là một mỏ vàng mới - và cực kỳ dễ bị đánh cắp. Bất kỳ giải pháp nào được đề cập bên trên cũng sẽ giúp bảo vệ dữ liệu. Tuy nhiên, bước đầu tiên là nhận thức và cảnh giác. Ngay bây giờ, các bot đang truy cập vào các URL của ta để tìm kiếm dữ liệu có thể sử dụng. Ta đã chuẩn bị để đối mặt với chúng chưa? Suy cho cùng, sức khỏe thương hiệu của ta phụ thuộc vào mức độ bảo vệ nội dung trang web và thông tin người dùng tốt như thế nào.