如何删除字符串中引号内的内容?

时间:2016-06-05 18:04:41

标签: python html-parsing

我有这个

<a href="http://helloword.com"><img src="hola.png" alt="hola"></a>

我需要

 <a href=""><img src="" alt= ""></a>

3 个答案:

答案 0 :(得分:0)

我尝试了以下程序,它适用于您的输入。看看吧。

 import re
 s='<a href="http://helloword.com"><img src="hola.png" alt="hola"></a>'
 r=re.sub('".*?"','""',s)
 print r

它会打印出来:

<a href=""><img src="" alt=""></a>

答案 1 :(得分:0)

使用正则表达式尝试它并没有给我预期的结果。我最终解决了这个问题的代码。 我真的更灵活,更有活力。还允许将结果保存到新的html文件中

import random
import os
import subprocess
from lxml import html
from lxml.html.clean import clean_html
from lxml.html import tostring, html5parser
import glob
from lxml import html

#print glob.glob("*.html")
for itemfile in glob.glob("*.html"):
    if os.path.isfile(itemfile):
        f = open(itemfile, 'rb')
        data = f.read()
        f.close()
        dochtml = html.fromstring(data)
        for element, attribute, link, pos in dochtml.iterlinks():
      if element.tag in ("img","a"):
        if attribute == "src":
          element.set('src', "")
          element.set('alt', "")
        if attribute == "href":
          element.set('href', "")
      #print tostring(dochtml)
      parser = tostring(dochtml, method='html')
      f = open(itemfile[:itemfile.find(".html")] + "_parser.html", 'wb')
      f.write(parser)
      f.close()           
    else:
        print 'not file.'

答案 2 :(得分:0)

使用BeautifulSoup这么容易......我不知道你为什么要使用这么多代码。这将用空字符串替换此href,alt和src标记中的内容。

我将使用此代替lxml ...

from bs4 import BeautifulSoup

soup = BeautifulSoup('<a href="http://helloword.com"><img src="hola.png" alt="hola"></a>', 'html.parser')
href = soup.find('a').attrs.get('href')
alt = soup.find('img').attrs.get('alt')
src= soup.find('img').attrs.get('src')

text = str(soup).replace(href, '').replace(src,'').replace(alt,'')
print text