หลังจากลองวิธีการต่าง ๆ เพื่อสรุปมันเป็นวิธีที่ฉันทำ ต่อไปนี้เป็นสองวิธีในการหลีกเลี่ยง / ลบอักขระ \ xa0 ออกจากสตริง HTML แยกวิเคราะห์
สมมติว่าเรามี html ดิบของเราดังต่อไปนี้:
raw_html = '<p>Dear Parent, </p><p><span style="font-size: 1rem;">This is a test message, </span><span style="font-size: 1rem;">kindly ignore it. </span></p><p><span style="font-size: 1rem;">Thanks</span></p>'
ดังนั้นลองทำความสะอาดสตริง HTML นี้:
from bs4 import BeautifulSoup
raw_html = '<p>Dear Parent, </p><p><span style="font-size: 1rem;">This is a test message, </span><span style="font-size: 1rem;">kindly ignore it. </span></p><p><span style="font-size: 1rem;">Thanks</span></p>'
text_string = BeautifulSoup(raw_html, "lxml").text
print text_string
#u'Dear Parent,\xa0This is a test message,\xa0kindly ignore it.\xa0Thanks'
โค้ดด้านบนสร้างอักขระเหล่านี้\ xa0ในสตริง หากต้องการลบออกอย่างถูกต้องเราสามารถใช้สองวิธี
วิธีที่ # 1 (แนะนำ):
วิธีแรกคือเมธอดget_textของ BeautifulSoup ที่มีอาร์กิวเมนต์แถบเป็น True
ดังนั้นรหัสของเราจะกลายเป็น:
clean_text = BeautifulSoup(raw_html, "lxml").get_text(strip=True)
print clean_text
# Dear Parent,This is a test message,kindly ignore it.Thanks
วิธีที่ # 2:
ตัวเลือกอื่นคือใช้ไลบรารี python unicodedata
import unicodedata
text_string = BeautifulSoup(raw_html, "lxml").text
clean_text = unicodedata.normalize("NFKD",text_string)
print clean_text
# u'Dear Parent,This is a test message,kindly ignore it.Thanks'
ฉันได้ให้รายละเอียดวิธีการเหล่านี้ในบล็อกนี้ซึ่งคุณอาจต้องการอ้างอิง