国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python網絡編程學習筆記(七):HTML和XHTML解析(HTMLParser、BeautifulSo

2020-02-23 05:27:30
字體:
來源:轉載
供稿:網友

一、利用HTMLParser進行網頁解析
具體HTMLParser官方文檔可參考http://docs.python.org/library/htmlparser.html#HTMLParser.HTMLParser

1、從一個簡單的解析例子開始
例1:
test1.html文件內容如下:

代碼如下:
<html>
<head>
<title> XHTML 與 HTML 4.01 標準沒有太多的不同</title>
</head>
<body>
i love you
</body>
</html>

下面是能夠列出title和body的程序示例:

代碼如下:
##@小五義:
##HTMLParser示例
import HTMLParser
class TitleParser(HTMLParser.HTMLParser):
    def __init__(self):
        self.taglevels=[]
        self.handledtags=['title','body'] #提出標簽
        self.processing=None
        HTMLParser.HTMLParser.__init__(self)
    def handle_starttag(self,tag,attrs):
        if tag in self.handledtags:
            self.data=''
            self.processing=tag
    def handle_data(self,data):
        if self.processing:
            self.data +=data
    def handle_endtag(self,tag):
        if tag==self.processing:
            print str(tag)+':'+str(tp.gettitle())
            self.processing=None
    def gettitle(self):
        return self.data
fd=open('test1.html')
tp=TitleParser()
tp.feed(fd.read())

運行結果如下:
title: XHTML 與 HTML 4.01 標準沒有太多的不同
body:
i love you
程序定義了一個TitleParser類,它是HTMLParser類的子孫。HTMLParser的feed方法將接收數據,并通過定義的HTMLParser對象對數據進行相應的解析。其中handle_starttag、handle_endtag判斷起始和終止tag,handle_data檢查是否取得數據,如果self.processing不為None,那么就取得數據。

2、解決html實體問題
(HTML 中有用的字符實體)
(1)實體名稱
當與到HTML中的實體問題時,上面的例子就無法實現,如這里將test1.html的代碼改為:
例2:

代碼如下:
<html>
<head>
<title> XHTML 與" HTML 4.01 "標準沒有太多的不同</title>
</head>
<body>
i love you×
</body>
</html>

利用上面的例子進行分析,其結果是:
title: XHTML 與 HTML 4.01 標準沒有太多的不同

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 惠州市| 大石桥市| 兴城市| 通城县| 杨浦区| 乌兰浩特市| 湘阴县| 林甸县| 保定市| 原阳县| 铜鼓县| 太康县| 永善县| 礼泉县| 阳山县| 商水县| 搜索| 五常市| 神池县| 治多县| 蒙城县| 乾安县| 苏尼特右旗| 塔河县| 德格县| 会泽县| 姜堰市| 武宣县| 突泉县| 垣曲县| 大厂| 宜兰市| 运城市| 布拖县| 郯城县| 常熟市| 太康县| 保靖县| 广宁县| 许昌县| 山西省|