python去除标签
Ⅰ python怎么去除多的HTML标签
不要用soup,去了解一下re,很简单的
Ⅱ python去掉html标签
s='<SPANstyle="FONT-SIZE:9pt">开始1~3<SPANlang=EN-US><?xml:namespaceprefix=ons="urn:schemas-microsoft-com:office:office"/><o:p></o:p></SPAN></SPAN>'
importre
d=re.sub('<[^>]+>','',s)
printd
开始1~3
Ⅲ python正则表达式去除html标签的属性
importre
test='<pclass="pictext"align="center">陈细妹</p>'
test=re.sub(r'(<[^>s]+)s[^>]+?(>)',r'12',test)
print(test)
Ⅳ 请问python如何将网页源码中的head标签去除
正则表达式 regular expression
r'<head[^>]*>([^<]+)</head>'
Ⅳ python 去除html标签的几种方法
python去除html标签的几种方法,代码如下:
#!/usr/bin/python
#-*-coding:utf-8-*-
'''
Createdon2015-07-08
@author:Administrator
'''
importre
classFilterTag():
def__init__(self):
pass
deffilterHtmlTag(self,htmlStr):
'''
过滤html中的标签
:paramhtmlStr:html字符串或是网页源码
'''
self.htmlStr=htmlStr
#先过滤CDATA
re_cdata=re.compile('//]*//]]>',re.I)#匹配CDATA
re_script=re.compile('<s*script[^>]*>[^<]*<s*/s*scripts*>',re.I)#Script
re_style=re.compile('<s*style[^>]*>[^<]*<s*/s*styles*>',re.I)#style
re_br=re.compile('')#处理换行
re_h=re.compile(']*>')#HTML标签
re_comment=re.compile('')#HTML注释
s=re_cdata.sub('',htmlStr)#去掉CDATA
s=re_script.sub('',s)#去掉SCRIPT
s=re_style.sub('',s)#去掉style
s=re_br.sub(' ',s)#将br转换为换行
blank_line=re.compile(' +')#去掉多余的空行
s=blank_line.sub(' ',s)
s=re_h.sub('',s)#去掉HTML标签
s=re_comment.sub('',s)#去掉HTML注释
#去掉多余的空行
blank_line=re.compile(' +')
s=blank_line.sub(' ',s)
filterTag=FilterTag()
s=filterTag.replaceCharEntity(s)#替换实体
prints
defreplaceCharEntity(self,htmlStr):
'''
替换html中常用的字符实体
使用正常的字符替换html中特殊的字符实体
可以添加新的字符实体到CHAR_ENTITIES中
CHAR_ENTITIES是一个字典前面是特殊字符实体后面是其对应的正常字符
:paramhtmlStr:
'''
self.htmlStr=htmlStr
CHAR_ENTITIES={'nbsp':'','160':'',
'lt':'<','60':'<',
'gt':'>','62':'>',
'amp':'&','38':'&',
'quot':'"','34':'"',}
re_charEntity=re.compile(r'&#?(?Pw+);')
sz=re_charEntity.search(htmlStr)
whilesz:
entity=sz.group()#entity全称,如>
key=sz.group('name')#去除&;后的字符如(""--->key="nbsp")去除&;后entity,如>为gt
try:
htmlStr=re_charEntity.sub(CHAR_ENTITIES[key],htmlStr,1)
sz=re_charEntity.search(htmlStr)
exceptKeyError:
#以空串代替
htmlStr=re_charEntity.sub('',htmlStr,1)
sz=re_charEntity.search(htmlStr)
returnhtmlStr
defreplace(self,s,re_exp,repl_string):
returnre_exp.sub(repl_string)
defstrip_tags(self,htmlStr):
'''
使用HTMLParser进行html标签过滤
:paramhtmlStr:
'''
self.htmlStr=htmlStr
htmlStr=htmlStr.strip()
htmlStr=htmlStr.strip(" ")
result=[]
parser=HTMLParser()
parser.handle_data=result.append
parser.feed(htmlStr)
parser.close()
return''.join(result)
defstripTagSimple(self,htmlStr):
'''
最简单的过滤html<>标签的方法注意必须是<任意字符>而不能单纯是<>
:paramhtmlStr:
'''
self.htmlStr=htmlStr
#dr=re.compile(r'<[^>]+>',re.S)
dr=re.compile(r']*>',re.S)
htmlStr=re.sub(dr,'',htmlStr)
returnhtmlStr
if__name__=='__main__':
#s=file('Google.html').read()
filters=FilterTag()
printfilters.stripTagSimple("<1>你好")
Ⅵ python语言去除文本中的p标签
用Python语言的sub()函数替换就可以实现你的目标
具体程序如下(假设你每次从文件中读取一行,放在line变量中)
importre
line='<p>宁波大学</p>'
regex=r'</?p>'
result=re.sub(regex,"",line,re.I)
print(result)
Ⅶ python处理是Xml文件的,删除标签属性符合条件的!如<data name="test"id="
你可以使用 BeautifulSoup 套件:
安装:
pip install bs4
如果觉得 html 解析器不敷使用,参考文档安装其他适合的解析器。
如果想要详细了解 BeautifulSoup 也请参考官方文档(有中文版本)。
测试档:
以下是我使用的测试文件:
# delete.txt
126
147
# test.xml
<re>
<id>123</id>
<name>abc</name>
</re>
<re>
<id>126</id>
<name>abc</name>
</re>
<re>
<id>135</id>
<name>abc</name>
</re>
<re>
<id>147</id>
<name>abc</name>
</re>
代码:
from bs4 import BeautifulSoup
with open('test.xml') as reader:
xml = reader.read()
deleted_id = []
with open('delete.txt') as reader:
for line in reader:
line = line.strip()
deleted_id.append(line)
def has_delete_id(tag):
return tag.name=='re' and tag.id.string in deleted_id
soup = BeautifulSoup(xml, 'html.parser')
tags = soup(has_delete_id)
for tag in tags:
tag.decompose()
print(soup.prettify())
程式输出:
<re>
<id>
123
</id>
<name>
abc
</name>
</re>
<re>
<id>
135
</id>
<name>
abc
</name>
</re>
代码说明:
首先我们从 Beautiful Soup 的套件中汇入 BeautifulSoup 类
from bs4 import BeautifulSoup
接着分别从 delete.txt 和 test.xml 中读出要删除的 id 和主要的 xml 内容,下一步是实体化生成一个 BeautifulSoup对象 soup, 我们采用 html.parser 解析器去解析 xml:
soup = BeautifulSoup(xml, 'html.parser')
在此我们定义了一个用于过滤的 function has_delete_id,每一个在 xml 中的tag 只要是 <re> tag 且含有想要删除的 <id> tag 就会被检索出来:
def has_delete_id(tag):
return tag.name=='re' and tag.id.string in deleted_id
接着 soup(has_delete_id) 会帮助我们找到欲删除的 tag,接着走访搜索出来的这些 tag 并呼叫方法 decompose() 来从文件中删除该标签。
最后 soup.prettify()可以帮助我们输出修改后的文件。
Ⅷ python如何根据标签属性删除标签
你好:
你在del(a['style']) ;
下面再把a打印出来看看;
Ⅸ python 剔除文本中不需要的标签和连接,提取中文和图片的连接
import re 利用正则提取,简单方便。
importre
text=''#待提取文本
result1=re.findall(r'([u4e00-u9fa5]+)',text)#提取中文
result2=re.findall(r'<img.*?src="(.*?)"[^>]*?>',text,re.S)#提取图片链接
print(result1)
print(result2)
Ⅹ python 如何去掉提取出来的多余的标签
按照你的要求编写的提取温度的Python程序如下
import re
s='[<div class="hisdailytemp">
<span class="tred">17℃</span> ~
<span class="tblue">11℃ </span>
</div>]'
regex=r'>([^
]+?)<'
temp=re.compile(regex)
print(''.join(temp.findall(s)))