Một giới thiệu về BeautifulSoup (phần 3)

Chạy BeautifulSoup

Object sử dụng phổ biến nhất trong thư viện BeautifulSoup là, đại khái BeautifulSoup object. Hãy nhìn vào nó trong
thực tế, điều chỉnh ví dụ tìm thấy trong phần bắt đầu của học phần:

from urllib.request import urlopen
from bs4 import BeautifulSoup
html = urlopen(‘http://www.pythonscraping.com/pages/page1.html’)
bs = BeautifulSoup(html.read(), ‘html.parser’)
print(bs.h1)

Đầu ra là như sau:

<h1>An Interesting Title</h1>

Chú ý rằng cái này trả về chỉ thực thể đầu tiên của h1 tag tìm thấy trên trang. Theo thông lệ, chỉ một h1 tag
nên được sử dụng trên một trang đơn, nhưng các thông lệ thường bị phá vỡ trên web, nên bạn nên nhận thức
rằng cái này chỉ giành thực thể đầu tiên của tag, và không nhất thiết là cái bạn đang tìm kiếm cho.
Như trong ví dụ web scraping trên, bạn đang nhập khẩu hàm urlopengọi html.read() để nhận nội dung HTML
của trang. Ngoài text string, BeautifulSoup có thể sử dụng file object được trả về trực tiếp bởi urlopen,
mà không cần gọi .read() trước tiên:

bs = BeautifulSoup(html, ‘html.parser’)

Nội dung HTML này sau đó được chuyển dạng thành một BeautifulSoup object với cấu trúc sau:
structure
Chú ý rằng h1 tag cái bạn rút ra từ page được nested hai tầng sâu vào trong cấu trúc BeautifulSoup object của
bạn (html → body → h1). Tuy nhiên, khi bạn thực sự lấy nó từ object, bạn gọi h1 tag trực tiếp:

bs.h1

Trên thực tế, bất cứ các lời gọi hàm sau sẽ sinh ra cùng đầu ra:

bs.html.body.h1
bs.body.h1
bs.html.h1

Chia sẻ