How to remove all attributes of the specific elements througout the document. I'm trying something like this:
from bs4 import UnicodeDammit
from lxml import html
content = open("source.html").read()
document = UnicodeDammit(content, is_html=True)
parser = html.HTMLParser(encoding=document.original_encoding)
root = html.document_fromstring(content, parser=parser)
for attr in root.xpath('.//table/@*'):
del attr.attrib
Here I'm trying to delete all attributes from all tables in the document using xpath, but it doesn't work.
To remove all attributes of elements, we use removeAttributeNode() method.
Removing an element using the remove() method To remove an element from the DOM, you can also use the remove() method of the element. How it works. First, select the last element of the ul element. Second, call the remove() of that element to remove it from the DOM.
HTML attributes can be used to change the color, size, and other features of HTML elements. For example, you can use an attribute to change the color or size of a font for a text element or the width and height for an image element.
This is one possible way, assuming that you want to remove all attributes of certain element, say table
:
for table in root.xpath('//table[@*]'):
table.attrib.clear()
The code above loop through all table
that contains any attribute, then call clear()
method of the elemet's attrib
property, since the property is simply a python dictionary.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With