html取元素的文本,解析HTML以获取元素内的文本

LISTERINE..

38

此代码取自python docs

from HTMLParser import HTMLParser

# create a subclass and override the handler methods

class MyHTMLParser(HTMLParser):

def handle_starttag(self, tag, attrs):

print "Encountered a start tag:", tag

def handle_endtag(self, tag):

print "Encountered an end tag :", tag

def handle_data(self, data):

print "Encountered some data :", data

# instantiate the parser and fed it some HTML

parser = MyHTMLParser()

parser.feed('

Test'

'

Parse me!

')

结果如下:

Encountered a start tag: html

Encountered a start tag: head

Encountered a start tag: title

Encountered some data : Test

Encountered an end tag : title

Encountered an end tag : head

Encountered a start tag: body

Encountered a start tag: h1

Encountered some data : Parse me!

Encountered an end tag : h1

Encountered an end tag : body

Encountered an end tag : html

使用它并查看HTMLParser中的代码我想出了这个:

class myhtmlparser(HTMLParser):

def __init__(self):

self.reset()

self.NEWTAGS = []

self.NEWATTRS = []

self.HTMLDATA = []

def handle_starttag(self, tag, attrs):

self.NEWTAGS.append(tag)

self.NEWATTRS.append(attrs)

def handle_data(self, data):

self.HTMLDATA.append(data)

def clean(self):

self.NEWTAGS = []

self.NEWATTRS = []

self.HTMLDATA = []

你可以像这样使用它:

from HTMLParser import HTMLParser

pstring = source_code = """Martin Elias"""

class myhtmlparser(HTMLParser):

def __init__(self):

self.reset()

self.NEWTAGS = []

self.NEWATTRS = []

self.HTMLDATA = []

def handle_starttag(self, tag, attrs):

self.NEWTAGS.append(tag)

self.NEWATTRS.append(attrs)

def handle_data(self, data):

self.HTMLDATA.append(data)

def clean(self):

self.NEWTAGS = []

self.NEWATTRS = []

self.HTMLDATA = []

parser = myhtmlparser()

parser.feed(pstring)

# Extract data from parser

tags = parser.NEWTAGS

attrs = parser.NEWATTRS

data = parser.HTMLDATA

# Clean the parser

parser.clean()

# Print out our data

print tags

print attrs

print data

现在,您应该能够轻松地从这些列表中提取数据.我希望这有帮助!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值