python提供了乙個htmlparser的模組,當然現在web page通常都多多少少存在html不規範的問題,比如說但是並沒有關閉(也就是說沒有
,雖然xhtml可以避免這種事情的發生),mxtidy , 和utidylib通常可以完成html正規化的處理工作。
似乎在解析html時,正規表示式就不是那麼有力的工具了。還是使用python提供的模組和工具比較方便
下面的code定義了乙個從htmlparser繼承而來的titleparser類,通過該物件對標籤進行「識別」和解析。
#test of the parsing the html and xml
import sys , urllib2
from htmlparser import htmlparser
class titleparser(htmlparser):
def __init__(self):
self.title = ''
self.readingtitle = 0
htmlparser.__init__(self)
def handle_starttag(self , tag , attrs):
if tag == 'title':
self.readingtitle = 1
def handle_data(self , data):
if self.readingtitle:
self.title += data
def handle_endtag(self , tag):
if tag == 'title':
self.readingtitle = 0
def gettitle(self):
return self.title
def parsehtmltitle():
print('choose the file address: ')
addr = sys.stdin.readline().rstrip()
if(addr == 'url'):
print('input the url address:')
elif(addr == 'local'):
print('input the local filename: ')
else:
print('input the right method')
filename = sys.stdin.readline().rstrip()
if(addr == 'url'):
fd = urllib2.urlopen(filename)
elif(addr == 'local'):
fd = open(filename)
else:
print('filename wrong')
tp = titleparser()
tp.feed(fd.read())
print('the title is: ' , tp.gettitle().strip())
上面code中並不包涵實體翻譯功能,所以在通過urlopen方法開啟web page時會存在實體消失或其他相關問題(本人認為是這樣,還望牛人指教)
結果:
Python網路程式設計測試 DNS
dns就是傳說中的網域名稱解析,完成網域名稱和ip之間的轉換過程,值得注意的是 反向dns是由ip到網域名稱,這需要和逆向相區別。python 2.6以下版本,3.2還沒試過,有了解的同學請指教 並沒有 原生 的提供dns相關功能的module,pydns 在sourcerage上可以直接搜尋到,或...
python 網路程式設計測試 host應答
五一假期最後一天,隨便寫寫code,先上個小小伺服器應答udp請求。由於本人只有一台機器,所以使用的是lo0埠,socket設定為so reuseaddr 伺服器端 test of host import sys socket traceback time host xport sys.argv 1...
Python 網路程式設計測試 Parser初探
html或者xhtml可能是每個使用電腦的人最常接觸的程式語言,在感嘆google bing baidu等等 順便加上我老師的安圖搜尋 下面的code是測試而已,不論從 表面 或者從 內在 來說都存在一大堆問題,僅供同學們參考 code實現了從網頁資訊中獲取url的功能 class imgparse...