Tôi đang thực hiện một số thao tác dọn dẹp HTML với BeautifulSoup. Noob cho cả Python & BeautifulSoup. Tôi đã xóa thẻ chính xác như sau, dựa trên câu trả lời tôi tìm thấy ở nơi khác trên Stackoverflow:Xóa tất cả các kiểu nội tuyến bằng cách sử dụng BeautifulSoup
[s.extract() for s in soup('script')]
Nhưng cách xóa kiểu nội tuyến? Ví dụ như sau:
<p class="author" id="author_id" name="author_name" style="color:red;">Text</p>
<img class="some_image" href="somewhere.com">
Sẽ trở thành:
<p>Text</p>
<img href="somewhere.com">
Làm thế nào để xóa các lớp nội tuyến, id, các thuộc tính tên & phong cách của tất cả các yếu tố?
Câu trả lời cho các câu hỏi tương tự khác Tôi có thể tìm tất cả được đề cập bằng cách sử dụng trình phân tích cú pháp CSS để xử lý, thay vì BeautifulSoup, nhưng vì nhiệm vụ chỉ đơn giản là xóa thay vì thao tác các thuộc tính và là quy tắc chăn cho tất cả các thẻ, tôi đã hy vọng tìm được cách để làm tất cả trong BeautifulSoup.
Tôi đã sử dụng trích xuất() trong trường hợp tôi quyết định tạo danh sách mã đã xóa bất kỳ lúc nào, nhưng phân tách() cũng hoạt động tốt để loại bỏ hoàn toàn và hủy thẻ & nội dung. Cảm ơn vì đoạn mã thuộc tính-xóa, hoạt động như một nét duyên dáng! – Ila
Làm cho tinh thần. Tôi sẽ để lại ghi chú về 'decompose()' cho bất kỳ ai khác có thể vấp ngã điều này. – jmk