Computer >> Máy Tính >  >> Lập trình >> Python

html.parser - Trình phân tích cú pháp HTML và XHTML đơn giản bằng Python

Lớp HTMLParser được định nghĩa trong mô-đun này cung cấp chức năng phân tích cú pháp các tài liệu HTML và XHMTL. Lớp này chứa các phương thức xử lý có thể xác định thẻ, dữ liệu, nhận xét và các phần tử HTML khác.

Chúng ta phải xác định một lớp mới kế thừa lớp HTMLParser và gửi văn bản HTML bằng phương thức feed ().

from html.parser import HTMLParser
class parser(HTMLParser):
pass
p = parser()
p.feed('<a href = "www.tutorialspoint.com"></a>')

Chúng tôi phải ghi đè các phương thức sau của nó

handle_starttag(tag, attrs):

Các thẻ HTML thường nằm trong các cặp thẻ bắt đầu và thẻ kết thúc. Ví dụ: và . Phương thức này được gọi để xử lý phần bắt đầu của thẻ.

Tên của thẻ được chuyển đổi thành chữ thường. Đối số attrs là viết tắt của các thuộc tính được tìm thấy bên trong <> dấu ngoặc của thẻ.

Ví dụ:đối với thẻ , được cung cấp cho đối tượng phân tích cú pháp.

from html.parser import HTMLParser
class parser(HTMLParser):
def handle_starttag(self, tag, attrs):
print("Start tag:", tag)
for attr in attrs:
print(" attr:", attr)
p = parser()
p.feed('<a href = "www.tutorialspoint.com">')

Đầu ra

Start tag: a
attr: ('href', 'www.tutorialspoint.com')
handle_endtag(tag):

Phương thức này được gọi để xử lý thẻ kết thúc của một phần tử.

def handle_endtag(self, tag):
print ("end tag",tag)
handle_data(data):

Phương thức này được gọi để xử lý dữ liệu tùy ý giữa các thẻ. Ví dụ:

def handle_data(self, data):
print (data)
p = parser()
html = '''
<html>
   <body>
      <h1>Tutorialspoint</h1>
      <b>Python standard library</b>
      <p>HTML module</p>
   </body>
</html>'''
p.feed(html)

Đầu ra

Start tag: h1
Tutorialspoint
end tag h1
Start tag: b
Python standard library
end tag b
Start tag: p
HTML module
end tag p

Các phương thức khác trong lớp HTMLParser như sau:

get_starttag_text ()

Trả lại văn bản của thẻ bắt đầu được mở gần đây nhất.

getpos ()

Trả về số dòng hiện tại và phần bù.

handle_startendtag (tag, attrs)

Tương tự như handle_starttag (), nhưng được gọi khi trình phân tích cú pháp gặp thẻ trống kiểu XHTML (html.parser - Trình phân tích cú pháp HTML và XHTML đơn giản bằng Python ).

handle_comment (dữ liệu)

Phương thức này được gọi khi gặp nhận xét (ví dụ:).