Trình phân tích cú pháp css của beautifulsoup

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 lxml
6 như sau.

Trình phân tích cú pháp css của beautifulsoup
Trình phân tích cú pháp css của beautifulsoup

$ sudo pip install beautifulsoup4

8. 2. Cài đặt trình phân tích cú pháp sudo pip install lxml7

Để phân tích cú pháp

sudo pip install lxml
8 từ beautifulsoup, tao sử dụng bộ phân tích cú pháp xml có tên là
sudo pip install lxml
7. 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 lxml
6 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 lxml
0 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ìm
  • sudo 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 lxml
8 , 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 lxml
5 ở 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("https://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"><link rel="stylesheet" type="text/css" href="news.css? ...

Phân tích cú pháp HTML bằng BeautifulSoup

Bây giờ HTML có thể truy cập được, chúng tôi sẽ sử dụng BeautifulSoup để phân tích nó. Nếu bạn chưa cài đặt, bạn có thể cài đặt gói bằng cách thực hiện

sudo pip install lxml
09 đơn giản. Trong phần còn lại của bài viết này, chúng tôi sẽ gọi BeautifulSoup4 là "BS4"

Bây giờ chúng ta cần phân tích cú pháp HTML và tải nó vào cấu trúc BS4

sudo pip install lxml
0

Đối tượng

sudo pip install lxml
20 này rất tiện dụng và cho phép chúng ta dễ dàng truy cập nhiều thông tin hữu ích như

sudo pip install lxml
2

Nhắm mục tiêu các phần tử DOM

Bạn có thể bắt đầu thấy một khuôn mẫu trong cách sử dụng thư viện này. Nó cho phép bạn nhắm mục tiêu nhanh chóng và thanh lịch các phần tử DOM mà bạn cần

Nếu bạn cần chọn các phần tử DOM từ thẻ của nó (

sudo pip install lxml
21,
sudo pip install lxml
22,
sudo pip install lxml
23,. ) bạn có thể chỉ cần làm
sudo pip install lxml
24 để chọn nó. Thông báo trước là nó sẽ chỉ chọn phần tử HTML đầu tiên có thẻ đó

Ví dụ: nếu tôi muốn liên kết đầu tiên, tôi chỉ cần truy cập vào trường

sudo pip install lxml
25 của đối tượng BeautifulSoup của mình

sudo pip install lxml
9

Phần tử đó là một đại diện đầy đủ của thẻ đó và đi kèm với khá nhiều phương thức dành riêng cho HTML

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
0

Đây là một ví dụ đơn giản. Nếu bạn muốn chọn phần tử đầu tiên dựa trên thuộc tính

sudo pip install lxml
26 hoặc
sudo pip install lxml
27 của nó thì không khó hơn nhiều

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
3

Và nếu bạn không muốn phần tử phù hợp đầu tiên mà thay vào đó là tất cả các phần tử phù hợp, chỉ cần thay thế

sudo pip install lxml
28 bằng
sudo pip install lxml
29

Giao diện đơn giản và thanh lịch này cho phép bạn nhanh chóng viết các đoạn mã Python ngắn và mạnh mẽ. Ví dụ: giả sử tôi muốn trích xuất tất cả các liên kết trong trang này và tìm ba liên kết hàng đầu xuất hiện nhiều nhất trên trang. Tất cả những gì tôi phải làm là thế này

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
6

Lựa chọn phần tử động

Cho đến nay, chúng tôi luôn chuyển một loại thẻ tĩnh, tuy nhiên,

sudo pip install lxml
29 linh hoạt hơn và cũng hỗ trợ các lựa chọn động. Ví dụ: chúng ta có thể chuyển một tham chiếu hàm và
sudo pip install lxml
29 sẽ gọi hàm của bạn cho từng phần tử và chỉ bao gồm phần tử đó nếu hàm của bạn trả về
sudo pip install lxml
92

Trong mẫu mã sau đây, chúng tôi đã xác định hàm

sudo pip install lxml
93 nhận tham số thẻ và chỉ trả về
sudo pip install lxml
92 nếu nó có thẻ
sudo pip install lxml
22 với lớp HTML
sudo pip install lxml
96. Về cơ bản, chúng tôi chỉ trích xuất các liên kết bài viết từ trang chính

Belgian Waffles : $5.95
Strawberry Belgian Waffles : $7.95
4

sudo pip install lxml
29 không chỉ hỗ trợ các chuỗi tĩnh dưới dạng bộ lọc, mà còn tuân theo cách tiếp cận "true-ness" chung, trong đó bạn có thể chuyển các loại biểu thức khác nhau và chúng chỉ cần đánh giá là true. Ngoài các chuỗi thẻ và chức năng, hiện tại cũng có hỗ trợ cho các biểu thức và danh sách thông thường. Ngoài
sudo pip install lxml
29, còn có các chức năng khác để điều hướng cây DOM, ví dụ: chọn các anh chị em DOM sau hoặc cha mẹ của phần tử

BeautifulSoup là một ví dụ tuyệt vời về một thư viện dễ sử dụng và mạnh mẽ. Chúng ta chủ yếu nói về việc chọn và tìm các phần tử, nhưng bạn cũng có thể thay đổi và cập nhật toàn bộ cây DOM. Tuy nhiên, chúng tôi sẽ không đề cập đến các bit này trong bài viết này vì đã đến lúc sử dụng bộ chọn CSS

bộ chọn CSS

Tại sao phải tìm hiểu về bộ chọn CSS nếu BeautifulSoup đã có cách chọn các phần tử dựa trên thuộc tính của chúng?

Chà, bạn sẽ sớm hiểu thôi

Truy vấn DOM

Thông thường, các phần tử DOM không có ID hoặc tên lớp thích hợp. Mặc dù hoàn toàn có thể (vui lòng xem các ví dụ trước của chúng tôi), việc chọn các phần tử trong trường hợp đó có thể khá dài dòng và yêu cầu nhiều bước thủ công

Ví dụ: giả sử bạn muốn trích xuất điểm của một bài đăng trên trang chủ HN, nhưng bạn không thể sử dụng tên

sudo pip install lxml
27 hoặc
sudo pip install lxml
26 trong mã của mình. Đây là cách bạn có thể làm điều đó

Belgian Waffles : $5.95
Strawberry Belgian Waffles : $7.95
9

Như đã hứa, khá dài dòng, phải không?

Đây chính xác là nơi bộ chọn CSS tỏa sáng. Chúng cho phép bạn chia nhỏ vòng lặp của mình và if thành một biểu thức

sudo pip install lxml
0

Chìa khóa ở đây là

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
01. Điều này chọn cho chúng tôi
sudo pip install lxml
23 đầu tiên là con trực tiếp của ________ 203, bản thân nó phải là phần tử thứ hai của cha mẹ nó (________ 204). HTML sau đây minh họa một đoạn trích DOM hợp lệ cho bộ chọn của chúng tôi

sudo pip install lxml
00

Điều này rõ ràng và đơn giản hơn nhiều, phải không? . Nhưng sau khi chơi một lúc với DOM, bạn sẽ nhanh chóng nhận ra bộ chọn CSS mạnh mẽ như thế nào, đặc biệt là khi bạn không thể chỉ dựa vào ID hoặc tên lớp

Dễ dàng sửa lỗi

Một điều nữa làm cho bộ chọn CSS trở nên tuyệt vời để quét web là chúng có thể dễ dàng sửa lỗi. Hãy cùng kiểm tra nào

Mở công cụ dành cho nhà phát triển (

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
05) trong Chrome hoặc Firefox, chọn tab tài liệu và sử dụng
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
06/
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
07 +
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
08 để mở thanh tìm kiếm. Bây giờ hãy nhập bất kỳ biểu thức CSS nào (e. g.
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
09) và trình duyệt sẽ tìm phần tử phù hợp đầu tiên. Nhấn
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
30 sẽ lặp lại các phần tử

Trình phân tích cú pháp css của beautifulsoup
Trình phân tích cú pháp css của beautifulsoup


Điều tuyệt vời là nó cũng hoạt động theo cách khác. Nhấp chuột phải vào bất kỳ phần tử nào trong trình kiểm tra DOM và chọn

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
31 -
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
32 từ menu ngữ cảnh

Voilà, bạn có bộ chọn phù hợp trong khay nhớ tạm của mình

Trình phân tích cú pháp css của beautifulsoup
Trình phân tích cú pháp css của beautifulsoup


biểu thức nâng cao

Bộ chọn CSS cung cấp một cú pháp toàn diện để chọn các thành phần trong nhiều cài đặt khác nhau

Điều này bao gồm các tổ hợp con và hậu duệ, bộ chọn thuộc tính, v.v.

Con và con cháu

Bộ chọn con và hậu duệ cho phép bạn chọn các phần tử là phần tử con trực tiếp hoặc gián tiếp của phần tử cha đã cho

sudo pip install lxml
01

Và bạn có thể trộn chúng lại với nhau

sudo pip install lxml
02

Bộ chọn đó sẽ hoạt động hoàn toàn tốt với đoạn mã HTML này

sudo pip install lxml
03

Anh chị em ruột

Đây là một trong những mục yêu thích của tôi vì nó cho phép bạn chọn các phần tử dựa trên các phần tử ở cùng cấp độ trong hệ thống phân cấp DOM, do đó có biểu thức anh chị em

sudo pip install lxml
04

Để chọn tất cả

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
33 sau một
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
34, bạn có thể sử dụng bộ chọn
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
35 (nó sẽ khớp với hai
sudo pip install lxml
21)

Bạn cũng có thể sử dụng

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
37 nếu bạn chỉ muốn chọn
sudo pip install lxml
21 ngay 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
39 của chúng tôi (nó sẽ chỉ khớp với một
sudo pip install lxml
21)

bộ chọn thuộc tính

Bộ chọn thuộc tính cho phép bạn chọn các phần tử có giá trị thuộc tính cụ thể. Vì vậy,

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
61 sẽ khớp

sudo pip install lxml
05

lớp giả

Giả sử chúng ta có tài liệu HTML này

sudo pip install lxml
06

Hơn nữa, giả sử chúng ta chỉ muốn chọn một phần tử

sudo pip install lxml
21 cụ thể. Chào mừng đến với lớp học giả

Các lớp giả, chẳng hạn như

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
63,
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
64 và
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
65, cho phép bạn chọn các phần tử cụ thể theo vị trí của chúng trong cây DOM

sudo pip install lxml
07

Có rất nhiều lớp giả khác (e. g.

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
66 sẽ chọn tất cả các hộp kiểm đã chọn) và bạn có thể tìm thấy danh sách đầy đủ tại đây. Nếu bạn muốn tìm hiểu thêm về bộ chọn CSS, bạn cũng có thể thấy bài viết này thú vị

Mã có thể bảo trì

Tôi cũng nghĩ rằng các biểu thức CSS dễ bảo trì hơn. Ví dụ: tại ScrapingBee, khi chúng tôi thực hiện các tác vụ quét web tùy chỉnh, tất cả các tập lệnh của chúng tôi bắt đầu như thế này

sudo pip install lxml
08

Điều này giúp dễ dàng sửa các tập lệnh khi thay đổi DOM được thực hiện

Chắc chắn, một cách khá dễ dàng để xác định bộ chọn CSS phù hợp là chỉ cần sao chép/dán những gì Chrome cung cấp cho bạn khi bạn nhấp chuột phải vào một phần tử. Tuy nhiên, bạn nên cẩn thận, vì các đường dẫn bộ chọn này có xu hướng rất "tuyệt đối" về bản chất và thường không hiệu quả nhất cũng như không linh hoạt đối với các thay đổi của DOM. Nói chung, tốt nhất bạn nên xác minh các bộ chọn đó theo cách thủ công trước khi sử dụng chúng trong tập lệnh của mình

💡 Chúng tôi đã phát hành một tính năng mới giúp toàn bộ quy trình này trở nên đơn giản hơn. Giờ đây, bạn có thể trích xuất dữ liệu từ HTML bằng một lệnh gọi API đơn giản. Vui lòng kiểm tra tài liệu. Nếu bạn muốn dùng thử ScrapingBee, chúng tôi rất sẵn lòng cung cấp miễn phí 1.000 lệnh gọi API đầu tiên

Sự kết luận

Bộ chọn BeautifulSoup và CSS cung cấp một cách tiếp cận rất thanh lịch và nhẹ nhàng để chạy các công việc quét web của bạn từ tập lệnh Python. Cụ thể, bộ chọn CSS là một công nghệ cũng được sử dụng ngoài lĩnh vực Python và là thứ chắc chắn đáng để thêm vào danh sách công cụ của một người

Tôi hy vọng bạn thích bài viết này về quét web bằng Python và nó sẽ giúp cuộc sống của bạn dễ dàng hơn. Nếu bạn muốn đọc thêm về quét web bằng Python, đừng ngần ngại xem hướng dẫn quét web Python mở rộng của chúng tôi. Bạn cũng có thể quan tâm đến hướng dẫn XPath của chúng tôi

Chúc mừng cạo,

Pierre de Wulf

Trình phân tích cú pháp css của beautifulsoup

Pierre de Wulf

Pierre là một kỹ sư dữ liệu từng làm việc trong một số công ty khởi nghiệp có tốc độ tăng trưởng cao trước khi đồng sáng lập ScrapingBee. Anh ấy là một chuyên gia xử lý dữ liệu và quét web.