如何使用Python从html中剥离高度和宽度标记?

2024-09-30 12:16:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我的html由如下图像标签组成:

 <img alt="Alla_dj01" height="333" src="http://getfile0.posterous.com/getfile/files.posterous.com/temp-2013-02-01/kjyqxkaqBICwbidlzEeCurhwpcilIGzDDcFrmlCcGDkftlbsedenbAGpFdbo/ALLA_DJ01.jpg.scaled500.jpg" width="500"

我想完全删除标签的宽度和高度。我可以使用replace和remove标记,但是height和width值不断变化,因此如何干净地删除它有点混乱。你知道吗


Tags: 图像srccomhttpimghtml标签alt
2条回答

如果只有一个这样的元素,那么应该可以很容易地使用基于正则表达式的搜索和替换。你知道吗

请参阅^{}函数,它完成了这项工作。你知道吗

作为一个起点,我会尝试以下方法:

stripped = re.sub(r'(height|width)=\"\d+\"', "", old_html)

您可以进一步改进它,以支持属性值的单引号,而不是假设值都是数字,等等。你知道吗

In [40]: import lxml.html as lh

In [41]: html = '''<img alt="Alla_dj01" height="333" src="http://getfile0.posterous.com/getfile/files.posterous.com/temp-2013-02-01/kjyqxkaqBICwbidlzEeCurhwpcilIGzDDcFrmlCcGDkftlbsedenbAGpFdbo/ALLA_DJ01.jpg.scaled500.jpg" width="500"'''

In [42]: doc = lh.fromstring(html)

In [43]: for img in doc.xpath('//img'):
    ...:     for a in ['width','height']:
    ...:         img.attrib.pop(a)  # img.attrib is basically a dict
    ...:         

In [44]: print lh.tostring(doc,pretty_print=True)
<img alt="Alla_dj01" src="http://getfile0.posterous.com/getfile/files.posterous.com/temp-2013-02-01/kjyqxkaqBICwbidlzEeCurhwpcilIGzDDcFrmlCcGDkftlbsedenbAGpFdbo/ALLA_DJ01.jpg.scaled500.jpg">

相关问题 更多 >

    热门问题