BeautifulSoup là một thư viện Python của bên thứ ba được sử dụng để phân tích (parse) dữ liệu từ các trang web. Nó hỗ trợ quá trình web scraping – kỹ thuật trích xuất, sử dụng và thao tác dữ liệu từ nhiều nguồn khác nhau.
Web scraping có thể dùng để thu thập dữ liệu cho nghiên cứu, hiểu/so sánh xu hướng thị trường, theo dõi SEO và nhiều mục đích khác.
Cài đặt BeautifulSoup
Chạy lệnh sau trên Windows để cài đặt:
pip install beautifulsoup4
Ví dụ minh họa
Dưới đây là mã mẫu trích xuất văn bản từ trang Wikipedia về "Algorithm":
import requests
from bs4 import BeautifulSoup
from urllib.request import urlopen
import urllib
url = 'https://en.wikipedia.org/wiki/Algorithm'
html = urlopen(url).read()
print("Đang đọc trang web...")
soup = BeautifulSoup(html, features="html.parser")
print("Đang phân tích trang web...")
# Loại bỏ thẻ script và style không cần thiết
for script in soup(["script", "style"]):
script.extract()
print("Đang trích xuất văn bản...")
text = soup.get_text()
print("Đang làm sạch dữ liệu...")
lines = (line.strip() for line in text.splitlines())
chunks = (phrase.strip() for line in lines for phrase in line.split(" "))
text = '\n'.join(chunk for chunk in chunks if chunk)
text = str(text)
print(text)
Kết quả đầu ra
Đang đọc trang web...
Đang phân tích trang web...
Đang trích xuất văn bản...
Đang làm sạch dữ liệu...
Đệ quy triển khai thuật toán Euclid từ biểu đồ trên
Đệ quy
Một thuật toán đệ quy là thuật toán gọi lại chính nó lặp đi lặp lại cho đến khi điều kiện dừng khớp...
Phát triển Thống kê Tuyên bố Cookie
Giải thích
- Nhập các gói cần thiết.
- Định nghĩa URL trang web mục tiêu.
- Mở URL, đọc HTML và loại bỏ thẻ
script,style. - Sử dụng
get_text()để lấy nội dung văn bản. - Làm sạch: bỏ khoảng trắng thừa, dòng trống.
- In kết quả ra màn hình.
Lưu ý: Khi scraping, hãy tuân thủ robots.txt và điều khoản dịch vụ của trang web. BeautifulSoup thường kết hợp với requests để xử lý HTTP phức tạp hơn (header, session, timeout).