Bạn đang tìm hướng dẫn nhanh để giúp bạn bắt đầu quét web bằng Python Beautifulsoup?
Raphael Levi. Giám đốc kinh doanh cấp cao
05-Jan-2021
Trong bài viết này, chúng ta sẽ thảo luận
- Web Scraping hoạt động như thế nào?
- Súp đẹp là gì
- Yêu cầu cài đặt và Súp đẹp
- Các bước dễ dàng để cạo trong Python bằng Yêu cầu và Súp đẹp
Web Scraping hoạt động như thế nào?
Quét một trang web có nghĩa là yêu cầu dữ liệu cụ thể từ một trang web mục tiêu. Khi bạn cạo một trang, mã bạn viết sẽ gửi yêu cầu của bạn đến máy chủ lưu trữ trang đích. Sau đó, mã tải xuống trang, chỉ trích xuất các thành phần của trang được xác định ban đầu trong công việc thu thập thông tin
Ví dụ: giả sử chúng tôi đang tìm cách nhắm mục tiêu dữ liệu trong thẻ tiêu đề H3. Chúng tôi sẽ viết mã cho một công cụ tìm kiếm cụ thể cho thông tin đó. Cái cạp sẽ hoạt động theo ba giai đoạn
Bước 1. Gửi yêu cầu đến máy chủ để tải xuống nội dung của trang web
Bước 2. Lọc HTML của trang để tìm các thẻ H3 mong muốn
Bước 3. Sao chép văn bản bên trong thẻ đích, tạo đầu ra ở định dạng được chỉ định trước đó trong mã
Có thể thực hiện các tác vụ quét web bằng nhiều ngôn ngữ lập trình với các thư viện khác nhau, nhưng sử dụng Python với thư viện Beautiful Soup là một trong những phương pháp phổ biến và hiệu quả nhất. Trong các phần sau, chúng tôi sẽ đề cập đến những điều cơ bản để cạo trong Python bằng Beautiful Soup
Súp đẹp là gì?
Beautiful Soup cung cấp các phương pháp đơn giản để điều hướng, tìm kiếm và sửa đổi cây phân tích cú pháp trong các tệp HTML, XML. Nó chuyển đổi một tài liệu HTML phức tạp thành một cây các đối tượng Python. Nó cũng tự động chuyển đổi tài liệu sang Unicode, vì vậy bạn không cần phải suy nghĩ về mã hóa. Công cụ này không chỉ giúp bạn cạo mà còn làm sạch dữ liệu. Beautiful Soup hỗ trợ trình phân tích cú pháp HTML có trong thư viện chuẩn của Python, nhưng nó cũng hỗ trợ một số trình phân tích cú pháp Python của bên thứ ba như lxml hoặc hml5lib
Bạn có thể tìm hiểu thêm về toàn bộ khả năng của nó tại đây. Tài liệu Soup đẹp
Yêu cầu cài đặt và Súp đẹp
Để cài đặt Beautiful Soup, bạn cần có pip hoặc bất kỳ trình cài đặt Python nào khác. Bạn cũng có thể sử dụng phòng thí nghiệm jupyter của mình. Trong bài đăng này, chúng tôi sẽ sử dụng pip vì nó thuận tiện nhất. Mở thiết bị đầu cuối của bạn hoặc Jupyter Lab và viết
Một phương pháp khác là tải xuống các thư viện theo cách thủ công bằng cách theo các liên kết này
1. yêu cầu
2. Hml5lib
3. Soup4
Các bước dễ dàng để cạo trong Python bằng Yêu cầu và Súp đẹp
Bước 1. Bạn cần gửi một yêu cầu HTTP đến máy chủ của trang mà bạn muốn cạo. Máy chủ phản hồi bằng cách gửi nội dung HTML của trang web. Vì chúng tôi đang sử dụng Python cho các yêu cầu của mình nên chúng tôi cần thư viện HTTP của bên thứ ba và chúng tôi sẽ sử dụng Yêu cầu
Bắt đầu bằng cách nhập thư viện Yêu cầu và tạo một yêu cầu GET đơn giản tới URL - chúng tôi đã chọn https. //www. trích dẫn thông minh. com/topics/motivational-quotes vì nó có cấu trúc HTML đơn giản và sẽ cho phép chúng tôi chứng minh tiềm năng của Beautiful Soup một cách dễ dàng.
Bị chặn?
Hãy thực hiện lại yêu cầu tương tự, nhưng lần này chúng tôi sẽ lưu trữ kết quả trong một biến có tên r và chúng tôi sẽ in nội dung của nó.
Bước 2. Bây giờ chúng ta có nội dung HTML, chúng ta cần phân tích dữ liệu. Để làm được điều đó, chúng tôi sẽ sử dụng món súp đẹp mắt với trình phân tích cú pháp html5lib.
#1. chuỗi HTML từ trang web; . Nội dung'
#2. Trình phân tích cú pháp HTML nào sẽ sử dụng;
Bước 3. Tại thời điểm này, bạn muốn truy cập trang web mà bạn đang tìm kiếm. Mở Devtools [F12] và chuyển đến tab Thành phần. Chúng tôi sẽ tìm kiếm lớp bảng trên cùng
Hãy in bảng để hiểu rõ hơn về những gì chúng ta có cho đến nay và hãy sử dụng. làm đẹp[]
Đầu ra của bạn sẽ trông giống như thế này
Bây giờ chúng tôi tìm kiếm dữ liệu mà chúng tôi cần. Đối với ví dụ này, tất cả những gì chúng tôi muốn là văn bản được trích dẫn và tên tác giả. Như bạn có thể thấy, tất cả dữ liệu này đều ở
Vì vậy, hãy lặp qua tất cả các phiên bản của lớp này và lấy tất cả các trích dẫn trong bảng của chúng tôi
Bây giờ bạn chỉ nên có
trong mỗi phiên bản vòng lặp có sẵn cho bạn. Bạn có thể kiểm tra điều này bằng cách chạy print[row] trong vòng lặp
Chúng tôi đang tìm kiếm thông tin trong khóa “img alt”, vì vậy hãy tạo một biến báo giá và gán dữ liệu này cho nó