thư viện được gọi là beautifulsoup. Sử dụng thư viện này, chúng tôi có thể tìm kiếm các giá trị của thẻ html và nhận dữ liệu cụ thể như tiêu đề của trang và danh sách các tiêu đề trong trang
Cài đặt BeautifulSoup
Sử dụng trình quản lý gói Anaconda để cài đặt gói cần thiết và các gói phụ thuộc của nó
conda install Beaustifulsoap
Đọc tệp HTML
Trong ví dụ dưới đây, chúng tôi yêu cầu một url được tải vào môi trường python. Sau đó sử dụng tham số trình phân tích cú pháp html để đọc toàn bộ tệp html. Tiếp theo, chúng tôi in một vài dòng đầu tiên của trang html
Phân tích cú pháp có nghĩa là chia tệp hoặc đầu vào thành các phần thông tin/dữ liệu có thể được lưu trữ cho mục đích sử dụng cá nhân của chúng tôi trong tương lai. Đôi khi, chúng tôi cần dữ liệu từ một tệp hiện có được lưu trữ trên máy tính của mình, kỹ thuật phân tích cú pháp có thể được sử dụng trong những trường hợp như vậy. Phân tích cú pháp bao gồm nhiều kỹ thuật được sử dụng để trích xuất dữ liệu từ một tệp. Những điều sau đây bao gồm Sửa đổi tệp, Xóa thứ gì đó khỏi tệp, In dữ liệu, sử dụng phương pháp tạo con đệ quy để duyệt qua dữ liệu từ tệp, tìm con của thẻ, quét web từ liên kết để trích xuất thông tin hữu ích, v.v.
Sửa đổi tập tin
Sử dụng phương pháp làm đẹp để sửa đổi mã HTML từ- https. // lễ hội-knuth-1279a2. netlify. ứng dụng/, trông đẹp hơn. Prettify làm cho mã trông ở dạng tiêu chuẩn giống như mã được sử dụng trong Mã VS
Thí dụ
Python3
# Importing BeautifulSoup class from the bs4 module
from
bs4
import
BeautifulSoup
# Importing the HTTP library
import
requests as req
from
0
from
1from
2 from
3from
4from
5
from
7
from
8from
2 bs4
0bs4
1from
5
bs4
4
bs4
5bs4
6
đầu ra
Xóa thẻ
Có thể xóa thẻ bằng cách sử dụng phương thức phân tách và phương thức select_one với bộ chọn CSS để chọn và sau đó xóa phần tử thứ hai khỏi thẻ li, sau đó sử dụng phương thức prettify để sửa đổi mã HTML khỏi chỉ mục. tệp html
Thí dụ
Tệp được sử dụng
Python3
# Importing BeautifulSoup class from the bs4 module
from
bs4
import
BeautifulSoup
import
3
import
4from
2 import
6import
7import
8import
9BeautifulSoup
0from
5
BeautifulSoup
3
BeautifulSoup
4from
2 BeautifulSoup
6
from
7
from
8from
2
1______31from
5
5
6from
2
8
9from
5
# Importing the HTTP library
2
# Importing the HTTP library
3
# Importing the HTTP library
5
bs4
5# Importing the HTTP library
7
đầu ra
Tìm thẻ
Thẻ có thể được tìm thấy bình thường và được in bình thường bằng print[]
Thí dụ
Python3
# Importing BeautifulSoup class from the bs4 module
from
bs4
import
BeautifulSoup
import
3
import
4from
2 import
6import
7import
8import
9BeautifulSoup
0from
5
BeautifulSoup
3
BeautifulSoup
4from
2 BeautifulSoup
6
from
7
0from
2
1bs4
1from
5
6
bs4
5
8
bs4
5from
00
bs4
5from
02
bs4
5from
04
bs4
5from
06
đầu ra
Thẻ duyệt
Phương thức recursiveChildGenerator được sử dụng để duyệt qua các thẻ, tìm theo cách đệ quy tất cả các thẻ trong các thẻ từ tệp
Thí dụ
Python3
# Importing BeautifulSoup class from the bs4 module
from
bs4
import
BeautifulSoup
import
3
import
4from
2 import
6import
7import
8import
9BeautifulSoup
0from
5
BeautifulSoup
3
BeautifulSoup
4from
2 BeautifulSoup
6
from
7
from
8from
2
1______31from
5
from
35
from
36 from
37from
38 from
39
from
40from
41
________ 242 ________ 243 ________ 244
________ 245 ________ 246
from
47____35____249
đầu ra
Phân tích thuộc tính tên và văn bản của thẻ
Sử dụng thuộc tính tên của thẻ để in tên của nó và thuộc tính văn bản để in văn bản của nó cùng với mã của thẻ- ul từ tệp
Thí dụ
Python3
# Importing BeautifulSoup class from the bs4 module
from
bs4
import
BeautifulSoup
import
3
import
4from
2 import
6import
7import
8import
9BeautifulSoup
0from
5
BeautifulSoup
3
BeautifulSoup
4from
2 BeautifulSoup
6
from
7
from
8from
2
1______31from
5
from
78
bs4
5from
80from
81from
5
đầu ra
Tìm phần tử con của thẻ
Thuộc tính Children được sử dụng để lấy phần tử con của thẻ. Thuộc tính Children trả về 'các thẻ có khoảng cách' giữa chúng, chúng tôi đang thêm một điều kiện- e. tên không phải là Không để chỉ in tên của các thẻ từ tệp
Thí dụ
Python3
# Importing BeautifulSoup class from the bs4 module
from
bs4
import
BeautifulSoup
import
3
import
4from
2 import
6import
7import
8import
9BeautifulSoup
0from
5
BeautifulSoup
3
BeautifulSoup
4from
2 BeautifulSoup
6
from
7
from
8from
2
1______31from
5
bs4
11
bs4
12from
2 bs4
14
bs4
16
bs4
17
bs4
18from
2 bs4
20from
36 bs4
22from
38 bs4
24from
43 bs4
26bs4
27 bs4
28 bs4
29bs4
30
bs4
32
bs4
5bs4
34
đầu ra
Tìm trẻ em ở tất cả các cấp của thẻ
Thuộc tính Hậu duệ được sử dụng để lấy tất cả các hậu duệ [Trẻ em ở mọi cấp độ] của một thẻ từ tệp
Thí dụ
Python3
# Importing BeautifulSoup class from the bs4 module
from
bs4
import
BeautifulSoup
import
3
import
4from
2 import
6import
7import
8import
9BeautifulSoup
0from
5
BeautifulSoup
3
BeautifulSoup
4from
2 BeautifulSoup
6
from
7
from
8from
2
1______31from
5
bs4
11
bs4
64____22 bs4
66
bs4
68
bs4
18from
2 bs4
20from
36 bs4
22from
38 bs4
75from
43 bs4
26bs4
27 bs4
28 bs4
29bs4
30
bs4
32
bs4
5bs4
34
đầu ra
Tìm tất cả các yếu tố của thẻ
Sử dụng find_all[]
Phương thức find_all được sử dụng để tìm tất cả các phần tử [tên và văn bản] bên trong thẻ p từ tệp
Thí dụ
Python3
# Importing BeautifulSoup class from the bs4 module
from
bs4
import
BeautifulSoup
import
3
import
4from
2 import
6import
7import
8import
9BeautifulSoup
0from
5
BeautifulSoup
3
BeautifulSoup
4from
2 BeautifulSoup
6
from
7
from
8from
2
1______31from
5
import
14
from
36 import
16from
38 import
18import
19import
20
from
40import
23
from
42bs4
5____280import
27from
5
đầu ra
Bộ chọn CSS để tìm các phần tử.
Sử dụng phương thức select để sử dụng bộ chọn CSS để tìm phần tử thứ hai từ thẻ li từ tệp