最近在研究 Python ,发现用的还是很不习惯,很多PHP里面很简单的功能在Python 里面都得找半天,而且很多功能都得自己实现。
今天做个采集,需要过滤内容中的标签,搞了一下午,貌似终于搞出来了,测试了下达到了预想的效果,废话不多说贴上代码吧
from html.parser import HTMLParser
def strip_tags(html, save=None):
result = []
start = []
data = []
def starttag(tag, attrs):
if tag not in save:
return
start.append(tag)
if attrs:
j = 0
for attr in attrs:
attrs[j] = attr[0] + '="' + attr[1] + '"'
j += 1
attrs = ' ' + (' '.join(attrs))
else:
attrs = ''
result.append('')
def endtag(tag):
if start and tag == start[len(start) - 1]:
result.append('' + tag + '>')
parser = HTMLParser()
parser.handle_data = result.append
if save:
parser.handle_starttag = starttag
parser.handle_endtag = endtag
parser.feed(html)
parser.close()
for i in range(0, len(result)):
tmp = result[i].rstrip('\n')
tmp = tmp.lstrip('\n')
if tmp:
data.append(tmp)
return ''.join(data)
使用方法: