Trong phần này, chúng tôi sẽ phân tích cú pháp thành dữ liệu XML nội dung để xử lý. Để xử lý XML, ta sẽ sử dụng thư viện Beautifulsoup 4. Đây là một thư viện giúp phát triển công việc phân tích cú pháp html, xml nhanh chóng và tiện lợi
Tuyển dụng lập trình python lương cao
8. 1. Cài đặt Beautifulsoup
Bạn có thể tham khảo hướng dẫn cách cài đặt tại trang web http. //www. vụn vặt. com/software/BeautifulSoup/bs4/doc/#installing-bean-soup c . Trên MacOS, có thể cài đặt bằng
sudo pip install lxml6 như sau.
$ sudo pip install beautifulsoup4
8. 2. Cài đặt trình phân tích cú pháp sudo pip install lxml
7
Để phân tích cú pháp
sudo pip install lxml8 từ beautifulsoup, tao sử dụng bộ phân tích cú pháp xml có tên là
sudo pip install lxml7. Xem hướng dẫn cài đặt tại https. //www. vụn vặt. com/software/BeautifulSoup/bs4/doc/#installing-a-parser
Trên MacOS, có thể cài đặt bằng
sudo pip install lxml6 như sau
sudo pip install lxml
8. 3. Ví dụ về phân tích cú pháp XML
Cho ví dụ sau
from bs4 import BeautifulSoup as Soup note = ''' Belgian Waffles $5.95 Two of our famous Belgian Waff les with plenty of real maple syrup 650 Strawberry Belgian Waffles $7.95 Light Belgian waffles covered with strawberries and whipped cream 900 ''' soup = Soup[note, 'xml'] foods = soup.findAll['food'] for x in foods: print x.find['name'].string, ': ', x.price.string
Khi chạy thì sẽ hiển thị màn hình như sau
Belgian Waffles : $5.95 Strawberry Belgian Waffles : $7.95
Đối tượng thuộc
sudo pip install lxml0 Soup [BeautifulSoup] sẽ giúp truy xuất các thành phần của tệp xml nhanh chóng và thuận tiện.
Trong ví dụ có một số cách truy xuất đến các phần tử như
sudo pip install lxml
1 . Trả về các mảng thẻ có tên cần tìmsudo pip install lxml
2. Return to the first element has an name to find- Truy xuất trực tiếp thông qua tên thẻ như
sudo pip install lxml
3
8. 4. Phân tích cú pháp HTML
Tương tự như
sudo pip install lxml8 , BeautifulSoup có thể phân tích nội dung HTML thông qua khởi tạo hàm và chọn
sudo pip install lxml5 ở tham số thứ 2
Trong bài viết này, chúng ta sẽ xem cách trích xuất thông tin có cấu trúc từ các trang web bằng cách sử dụng bộ chọn BeautifulSoup và CSS
Lấy HTML
BeautifulSoup không phải là một thư viện quét web. Nó là một thư viện cho phép bạn lấy thông tin từ HTML một cách hiệu quả và dễ dàng. Trong thế giới thực, nó thường được sử dụng cho các dự án quét web
Vì vậy, để bắt đầu, chúng ta cần một tài liệu HTML. Với mục đích đó, chúng tôi sẽ sử dụng gói Yêu cầu của Python và tìm nạp trang chính của HackerNews
import requests
response = requests.get["//news.ycombinator.com/"]
if response.status_code != 200:
print["Error fetching page"]
exit[]
else:
content = response.content
print[content]
> b' content="width=device-width, initial-scale=1.0">