CodeGym /Các khóa học /Python SELF VI /Giới thiệu về Web Scraping

Giới thiệu về Web Scraping

Python SELF VI
Mức độ , Bài học
Có sẵn

1. Web scraping là gì?

Web scraping — quá trình tự động trích xuất dữ liệu từ các trang web. Khác hẳn so với việc sao chép và dán thủ công, scraping cho phép các chương trình thu thập một lượng lớn dữ liệu mà nếu làm thủ công sẽ rất tốn thời gian. Hãy tưởng tượng bạn viết một con bot, nó sẽ thu thập dữ liệu từ website nhanh hơn tốc độ bạn nói "điệp viên bí mật".

Mục tiêu của web scraping

Mục tiêu rất đa dạng: từ giám sát giá cả trên các cửa hàng trực tuyến yêu thích đến thu thập tin tức để tạo bộ sưu tập riêng. Ví dụ, bạn có thể dùng web scraping để thu thập dữ liệu thời tiết hàng đêm và tự động gửi chúng về định dạng phù hợp để phân tích.

  • Thu thập dữ liệu: Thu thập dữ liệu từ nhiều trang web một cách nhanh chóng và hiệu quả, ngay cả khi họ không cung cấp API.
  • Giám sát thay đổi: Theo dõi các thay đổi trên trang tự động, như thay đổi giá cả hay cập nhật nội dung.
  • Nghiên cứu học thuật: Thu thập dữ liệu để phân tích và nghiên cứu những chủ đề không sẵn có trong các bộ dữ liệu hiện có.
  • Xây dựng cơ sở dữ liệu riêng: Ví dụ, cơ sở dữ liệu phim hoặc sách từ nhiều nguồn tài nguyên khác nhau.

Nhiệm vụ và khía cạnh đạo đức

Tuy nhiên, như Spider-Man đã nói: "Sức mạnh lớn đi kèm với trách nhiệm lớn". Mặc dù web scraping là một kỹ thuật mạnh mẽ, nó cần được sử dụng với sự hiểu biết và tôn trọng. Có rất nhiều khía cạnh hợp pháp và đạo đức mà chúng ta cần cân nhắc.

  1. Quy tắc sử dụng trang web (Terms of Service): Luôn đọc và tuân thủ quy tắc sử dụng của các trang web mà bạn dự định scraping. Một số trang web có thể cấm điều này, và vi phạm quy tắc của họ có thể dẫn tới việc bị chặn IP hoặc thậm chí là hệ quả pháp lý.
  2. Tôn trọng máy chủ: Hành động của bạn không nên gây quá tải cho máy chủ. Điều này có nghĩa là bạn cần điều chỉnh tần suất yêu cầu một cách hợp lý.
  3. Quyền riêng tư dữ liệu: Đảm bảo bạn không trích xuất dữ liệu cá nhân hoặc nhạy cảm mà không có sự cho phép.
  4. Hacking trang web: Parsing các khu vực đóng không đúng cách trên trang web có thể bị coi là hacking và dẫn tới trách nhiệm hành chính hoặc hình sự.

Mặc dù có những khía cạnh đạo đức phức tạp, web scraping là một công cụ vô giá cho tự động hóa khi được sử dụng đúng cách.

2. Web scraping trong thực tế: ví dụ và khả năng

Bây giờ, khi chúng ta đã biết tại sao muốn thực hiện web scraping, hãy xem quá trình này có thể trông như thế nào trong thực tế.

Ví dụ sử dụng

  • Giá cả và phân tích cạnh tranh: Các công ty thường theo dõi giá của đối thủ để duy trì lợi thế cạnh tranh.
  • Thu thập đánh giá khách hàng: Nghiên cứu các đánh giá để cải thiện sản phẩm và dịch vụ.
  • Phân tích thị trường: Các nhà phân tích tài chính có thể thu thập dữ liệu từ các trang web tài chính để phân tích xu hướng.
  • Nghiên cứu trong lĩnh vực y tế: Thu thập dữ liệu về các nghiên cứu mới hoặc tin tức y tế.

Tiềm năng của web scraping gần như không giới hạn và bao phủ nhiều ngành nghề cùng nhu cầu khác nhau.

Công cụ và thư viện

Mình nghĩ đã đến lúc giới thiệu các anh hùng chính của chúng ta: các công cụ và thư viện dành cho web scraping, như BeautifulSoup, Scrapy, và Selenium.

  • BeautifulSoup: Công cụ tuyệt vời để parsing các tài liệu HTML và XML. Nó cho phép dễ dàng trích xuất dữ liệu từ HTML và phân tích cấu trúc của nó. Đây là chiếc la bàn trong hành trình khám phá các trang web, giúp điều hướng cấu trúc của chúng.
  • Scrapy: Một framework lớn hơn dành cho web scraping, cung cấp nhiều cấu hình và chức năng để trích xuất dữ liệu đầy đủ. Đây giống như con dao Thụy Sĩ, cho phép scraping ở cấp độ cao hơn với ít nỗ lực hơn.
  • Selenium: Thích hợp để tương tác với các trang web động và được tạo bằng JavaScript. Với nó, bạn thậm chí có thể điều khiển trình duyệt, nhấn nút và điền vào các biểu mẫu.

Mỗi công cụ này có những đặc điểm và thế mạnh riêng, tùy thuộc vào nhiệm vụ mà bạn có thể chọn công cụ phù hợp nhất.

3. Ví dụ từ cuộc sống

Năm 2019, đã diễn ra một câu chuyện mà có thể được xem như kịch bản của một bộ phim công nghệ ly kỳ. HiQ Labs, một công ty nhỏ, đã phát triển một thuật toán nâng cao để phân tích dữ liệu HR – thuật toán mà theo họ tuyên bố, có thể dự đoán khi nào nhân viên bắt đầu suy nghĩ về việc nghỉ việc. Tất cả những gì HiQ Labs cần để hệ thống này hoạt động là dữ liệu mà họ thu thập được từ các hồ sơ công khai trên LinkedIn.

Đối với LinkedIn, đó là một cú sốc. Họ cho rằng HiQ Labs đã xâm phạm "lãnh thổ kỹ thuật số" của họ, vi phạm quyền của người dùng. Không lâu sau, LinkedIn yêu cầu ngừng ngay lập tức việc parsing dữ liệu và gửi công ty thông báo yêu cầu chấm dứt hoạt động, khẳng định rằng parsing vi phạm quy tắc và quyền riêng tư của người dùng. Nhưng HiQ Labs quyết định không từ bỏ và chấp nhận thách thức: công ty đệ đơn kiện ngược lại, khẳng định rằng tất cả dữ liệu họ thu thập đều là công khai. "Thông tin trên mạng thuộc về mọi người", — đại khái đó là tuyên bố của họ.

Thời khắc sự thật đã đến — vụ việc được đưa ra tòa, cả ngành công nghiệp đều nín thở chờ đợi. Nếu LinkedIn thắng, điều này sẽ đặt dấu chấm hết cho hàng trăm startup và công ty nghiên cứu sử dụng parsing làm nền tảng kinh doanh. Nếu tòa đứng về phía HiQ Labs, điều này sẽ tạo ra tiền lệ thay đổi quan niệm về những gì có thể và không thể thu thập trên mạng.

Khi tòa án cuối cùng đưa ra phán quyết, nó đã trở thành một cú sốc thực sự. Tòa phúc thẩm khu vực 9 của Mỹ quyết định rằng parsing dữ liệu công khai không vi phạm Đạo luật Lạm dụng và Gian lận Máy tính (CFAA). Thẩm phán xác nhận: nếu dữ liệu mở cho tất cả, việc thu thập nó không thể bị coi là bất hợp pháp.

Quyết định này đã trở thành tiền lệ và gây ra tiếng vang lớn, thay đổi luật chơi cho các công ty tham gia thu thập dữ liệu. LinkedIn đã thua trận chiến, nhưng cuộc chiến về dữ liệu chỉ vừa mới bắt đầu. Câu chuyện của HiQ Labs và LinkedIn đã trở thành biểu tượng về cách cuộc chiến thông tin trên internet có thể thay đổi thế giới và đẩy ranh giới của những gì được phép.

1
Nhiệm vụ
Python SELF VI, mức độ, bài học
Đã khóa
Lấy dữ liệu đơn giản từ trang web
Lấy dữ liệu đơn giản từ trang web
2
Nhiệm vụ
Python SELF VI, mức độ, bài học
Đã khóa
Làm việc với tham số trong request
Làm việc với tham số trong request
3
Nhiệm vụ
Python SELF VI, mức độ, bài học
Đã khóa
Giới thiệu về web scraping
Giới thiệu về web scraping
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION