Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

รองรับ HyperText Markup Language ใน Python หรือไม่


Python มีความสามารถในการประมวลผลไฟล์ HTML ผ่านคลาส HTMLParser ในโมดูล html.parser สามารถตรวจจับลักษณะของแท็ก HTML ตำแหน่งและคุณสมบัติอื่น ๆ ของแท็กได้ มีฟังก์ชันที่สามารถระบุและดึงข้อมูลที่มีอยู่ในไฟล์ HTML ได้

ในตัวอย่างด้านล่าง เราเห็นวิธีใช้คลาส HTMLParser เพื่อสร้างคลาส parser แบบกำหนดเอง ซึ่งสามารถประมวลผลแท็กและข้อมูลที่เรากำหนดในคลาสเท่านั้น เรากำลังประมวลผลแท็กเริ่มต้น แท็กสิ้นสุด และข้อมูล

ด้านล่างนี้คือ html ที่ได้รับการประมวลผลโดยโปรแกรมแยกวิเคราะห์ที่กำหนดเองของ python

ตัวอย่าง

<html>
<br>
<head>
<br>
<title>welcome to Tutorials Point!</title>
<br>
</head>
<br>
<body>
<br>
<h1>Learn anything !</h1>
<br>
</body>
<br>
</html>

ด้านล่างนี้คือโปรแกรมที่ parser ไฟล์ด้านบนแล้วส่งออกผลลัพธ์ตาม parser ที่กำหนดเอง

ตัวอย่าง

from html.parser import HTMLParser
import io
class Custom_Parser(HTMLParser):
   def handle_starttag(self, tag, attrs):
      print("Line and Offset ==", HTMLParser.getpos(self))
      print("Encountered a start tag:", tag)


   def handle_endtag(self, tag):
      print("Line and Offset ==", HTMLParser.getpos(self))
      print("Encountered an end tag :", tag)


   def handle_data(self, data):
      print("Line and Offset ==", HTMLParser.getpos(self))
      print("Encountered some data :", data)

parser = Custom_Parser()

stream = io.open("E:\\test.html", "r")
parser.feed(stream.read())

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

Line and Offset == (1, 0)
Encountered a start tag: html
Line and Offset == (1, 6)
Encountered some data :

Line and Offset == (2, 0)
Encountered a start tag: head
Line and Offset == (2, 6)
Encountered some data :

Line and Offset == (3, 0)
Encountered a start tag: title
Line and Offset == (3, 7)
Encountered some data : welcome to Tutorials Point!
Line and Offset == (3, 34)
Encountered an end tag : title
Line and Offset == (3, 42)
Encountered some data :

Line and Offset == (4, 0)
Encountered an end tag : head
Line and Offset == (4, 7)
Encountered some data :

Line and Offset == (5, 0)
Encountered a start tag: body
Line and Offset == (5, 6)
Encountered some data :

Line and Offset == (6, 0)
Encountered a start tag: h1
Line and Offset == (6, 4)
Encountered some data : Learn anything !
Line and Offset == (6, 20)
Encountered an end tag : h1
Line and Offset == (6, 25)
Encountered some data :

Line and Offset == (7, 0)
Encountered an end tag : body
Line and Offset == (7, 7)
Encountered some data :

Line and Offset == (8, 0)
Encountered an end tag : html