Tôi đã đọc nhiều q & về cách xóa tất cả mã html khỏi chuỗi bằng python nhưng không có mã nào đáp ứng được. Tôi cần một cách để loại bỏ tất cả các thẻ, bảo tồn/chuyển đổi các thực thể html và làm việc tốt với các chuỗi utf-8.Xóa hoàn toàn tất cả mã html khỏi một chuỗi trong python
Rõ ràng BeautifulSoup là dễ bị tổn thương đối với một số chuỗi html đặc biệt crafted, tôi đã xây dựng một phân tích cú pháp đơn giản với HTMLParser để có được chỉ là văn bản nhưng tôi đã thua các đối tượng
from HTMLParser import HTMLParser
class MyHTMLParser(HTMLParser):
def __init__(self):
HTMLParser.__init__(self)
self.data = []
def handle_data(self, data):
self.data.append(data)
def handle_charref(self, name):
self.data.append(name)
def handle_entityref(self, ent):
self.data.append(ent)
mang lại cho tôi một cái gì đó giống như
[u'Asia, sp ', u'cialiste du voyage', ...
mất đối tượng cho dấu "e" có dấu trong spécialiste.
Sử dụng một trong nhiều regexp bạn có thể tìm thấy làm câu trả lời cho các câu hỏi tương tự, nó sẽ luôn có một số trường hợp cạnh không được xem xét.
Có mô-đun thực sự tốt nào tôi có thể sử dụng không?
bleach.clean (' không được phép', dải = True) này có thể là chính xác những gì tôi cần, tôi sẽ làm một số xét nghiệm với utf-8, các thực thể html và rằng thứ tối nay và sau đó cho bạn biết, cảm ơn –
Thuốc tẩy không được chuyển đổi các thực thể HTML sang đối tác UTF-8 thực sự của chúng. Nếu không, hãy thử câu hỏi này: http://stackoverflow.com/questions/57708/convert-xml-html-entities-into-unicode-string-in-python –