国产探花免费观看_亚洲丰满少妇自慰呻吟_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 標準沒有太多的不同

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 蕲春县| 永定县| 三门峡市| 禄劝| 盐源县| 孝昌县| 陇南市| 同德县| 凤台县| 板桥市| 安宁市| 贡嘎县| 腾冲县| 宜兰市| 江口县| 慈利县| 株洲县| 利津县| 清流县| 屏南县| 洛隆县| 惠州市| 灵宝市| 吴旗县| 和龙市| 中宁县| 民县| 永胜县| 临泽县| 肃北| 靖安县| 洛阳市| 东乡族自治县| 瓮安县| 博野县| 永顺县| 手机| 柘荣县| 团风县| 新乡县| 闽清县|