Làm thế nào để bạn sử dụng món súp đẹp mắt trong python để quét web?

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.

Nếu bạn nhận được phản hồi [200], điều này có nghĩa là trang web đã phản hồi bằng mã phản hồi HTTP 200 OK và gửi cho chúng tôi nội dung HTML của trang.

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ó.

Đầu ra phải là toàn bộ mã HTML của trang này. Như bạn có thể thấy, đó là món súp đẹp mắt và không có cấu trúc sẽ giúp chúng tôi dọn dẹp nó và lấy dữ liệu mà chúng tôi cầ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.

Chúng ta cần chuyển hai giá trị vào BeautifulSoup[].

#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ó

BeautifulSoup hữu ích như thế nào trong việc quét web?

Để làm như vậy, chúng tôi nhập thư viện này, tạo một thể hiện của lớp BeautifulSoup và xử lý dữ liệu. Hàm prettify[] sẽ cho phép chúng tôi in nội dung HTML ở dạng lồng nhau dễ đọc và sẽ giúp trích xuất các thẻ có sẵn cần thiết .

Việc sử dụng BeautifulSoup trong Python là gì?

Beautiful Soup là một thư viện Python để lấy dữ liệu ra khỏi tệp HTML và XML . Nó hoạt động với trình phân tích cú pháp yêu thích của bạn để cung cấp các cách điều hướng, tìm kiếm và sửa đổi cây phân tích thành ngữ. Nó thường tiết kiệm cho lập trình viên hàng giờ hoặc ngày làm việc.

Chủ Đề