python HTMLParser
一、從HTML文檔中提取鏈接
Python語言還有一個非常有用的模塊HTMLParser,該模塊使我們能夠根據(jù)HTML文檔中的標(biāo)簽來簡潔、高效地解析HTML文檔。所以,在處理HTML文檔的時候,HTMLParser是最常用的模塊之一。
處理HTML文檔的時候,我們常常需要從其中提取出所有的鏈接。使用HTMLParser模塊后,這項任務(wù)將變得易如反掌。首先,我們需要定義一個新的HTMLParser類,以覆蓋handle_starttag()方法,我們將使用這個方法來顯示所有標(biāo)簽的HRef屬性值。
定義好新的HTMLParser類之后,需要創(chuàng)建一個實(shí)例來返回HTMLParser對象。然后,就可以使用urllib.urlopen(url)打開HTML文檔并讀取該HTML文件的內(nèi)容了。
為了解析HTML文件的內(nèi)容并顯示包含其中的鏈接,可以使用read()函數(shù)將數(shù)據(jù)傳遞給HTMLParser對象。HTMLParser對象的feed函數(shù)將接收數(shù)據(jù),并通過定義的HTMLParser對象對數(shù)據(jù)進(jìn)行相應(yīng)的解析。需要注意,如果傳給HTMLParser的feed()函數(shù)的數(shù)據(jù)不完整的話,那么不完整的標(biāo)簽會保存下來,并在下一次調(diào)用feed()函數(shù)時進(jìn)行解析。當(dāng)HTML文件很大,需要分段發(fā)送給解析器的時候,這個功能就會有用武之地了。
二、從HTML文檔中提取圖像
處理HTML文檔的時候,我們常常需要從其中提取出所有的圖像。使用HTMLParser模塊后,這項任務(wù)將變得易如反掌。首先,我們需要定義一個新的HTMLParser類,以覆蓋handle_starttag()方法,該方法的作用是查找img標(biāo)簽,并保存src屬性值所指的文件。
#!/usr/bin/python/ #-*-coding:utf-8-*- import HTMLParser import urllib import sys,urllib2,htmllib,formatter#urlString = "http://www.winddesktop.com" urlString = "http://image.baidu.com" def getimage(addr):u = urllib.urlopen(addr)data = u.read()splitPath = addr.split('/')fName = splitPath.pop()print "Saving %s" %fNamef = open("./image/"+fName,'wb')f.write(data)f.close()class parseImages(HTMLParser.HTMLParser):def handle_starttag(self,tag,attrs):if tag == 'img':for name,value in attrs:if name == 'src':getimage(urlString+"/"+value)lParser = parseImages() u = urllib.urlopen(urlString) print "Opening URL \n------" print u.info() lParser.feed(u.read()) lParser.close()三、從HTML文檔中提取文本
處理HTML文檔的時候,我們常常需要從其中提取出所有的文本。使用HTMLParser模塊后,這項任務(wù)將變得非常簡單了。首先,我們需要定義一個新的HTMLParser類,以覆蓋handle_data()方法,該方法是用來解析并文本數(shù)據(jù)的。
.....
http://blog.csdn.net/eting1987/article/details/6290428
總結(jié)
以上是生活随笔為你收集整理的python HTMLParser的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win2003能装mysql_win20
- 下一篇: Sklearn中predict_prob