Súp đẹp - Súp trang

Trong ví dụ mã trước, chúng ta phân tích cú pháp tài liệu thông qua hàm tạo đẹp bằng phương thức chuỗi. Một cách khác là chuyển tài liệu qua bộ xử lý tệp đang mở.

from bs4 import BeautifulSoup
with open("example.html") as fp:
   soup = BeautifulSoup(fp)
soup = BeautifulSoup("<html>data</html>")

Đầu tiên, tài liệu được chuyển đổi sang Unicode và các thực thể HTML được chuyển đổi thành các ký tự Unicode: </p>

import bs4
html = '''<b>tutorialspoint</b>, <i>&web scraping &data science;</i>'''
soup = bs4.BeautifulSoup(html, 'lxml')
print(soup)

Đầu ra

<html><body><b>tutorialspoint</b>, <i>&web scraping &data science;</i></body></html>

Sau đó, BeautifulSoup phân tích cú pháp dữ liệu bằng trình phân tích cú pháp HTML hoặc bạn yêu cầu rõ ràng nó phân tích cú pháp bằng trình phân tích cú pháp XML.

Cấu trúc cây HTML

Trước khi xem xét các thành phần khác nhau của trang HTML, trước tiên chúng ta hãy hiểu cấu trúc cây HTML.

Phần tử gốc trong cây tài liệu là html, có thể có cha mẹ, con cái và anh chị em và điều này xác định bởi vị trí của nó trong cấu trúc cây. Để di chuyển giữa các phần tử, thuộc tính và văn bản HTML, bạn phải di chuyển giữa các nút trong cấu trúc cây của mình.

Giả sử trang web như hình dưới đây -

Dịch sang tài liệu html như sau:

<html><head><title>TutorialsPoint</title></head><h1>Tutorialspoint Online Library</h1><p<<b>It's all Free</b></p></body></html>

Điều đơn giản có nghĩa là, đối với tài liệu html ở trên, chúng ta có cấu trúc cây html như sau: