利用Python抓取和解析网页(二)(3)
http://www.itjxue.com 2015-07-17 21:29 来源:未知 点击次数:
三、从HTML文档中提取文本
处理HTML文档的时候,我们常常需要从其中提取出所有的文本。使用HTMLParser模块后,这项任务将变得非常简单了。首先,我们需要定义一个新的HTMLParser类,以覆盖handle_data()方法,该方法是用来解析并文本数据的。
import HTMLParserimport urllib
class parseText(HTMLParser.HTMLParser):
def handle_data(self, data):
if data != '\n':
urlText.append(data)
lParser = parseText()
lParser.feed(urllib.urlopen( \
http://docs.python.org/lib/module-HTMLParser.html).read())
定义好新的HTMLParser类之后,需要创建一个实例来返回HTMLParser对象。然后,就可以使用urllib.urlopen(url)打开HTML文档并读取该HTML文件的内容了。
为了解析HTML文件的内容并显示包含其中的文本,我们可以使用feed(data)函数将数据传递给HTMLParser对象。HTMLParser对象的feed函数将接收数据,并通过定义的HTMLParser对象对数据进行相应的解析。要注意的是,如果传给HTMLParser的feed()函数的数据不完整的话,那么不完整的标签会保存下来,并在下一次调用feed()函数时进行解析。当HTML文件很大,需要分段发送给解析器的时候,这个功能就会有用武之地了。下面是一个具体的代码示例:
import HTMLParserimport urllib
urlText = []
#定义HTML解析器
class parseText(HTMLParser.HTMLParser):
def handle_data(self, data):
if data != '\n':
urlText.append(data)
#创建HTML解析器的实例
lParser = parseText()
#把HTML文件传给解析器
lParser.feed(urllib.urlopen( \
“http://docs.python.org/lib/module-HTMLParser.html” \
).read())
lParser.close()
for item in urlText:
print item
上面代码的运行输出过长,在此略过
(责任编辑:IT教学网)
上一篇:53个编程技巧提高PHP开发效率
下一篇:python入门教程:语句和语法