Python 網頁解析HTMLParse的實例詳解
使用python將網頁抓取下來之后,下一步我們就應該解析網頁,提取我們所需要的內容了,在python里提供了一個簡單的解析模塊HTMLParser類,使用起來也是比較簡單的,解析語法沒有用到XPath類似的簡潔模式,但新手用起來還是比較容易的,看下面的例子:
現在一個模擬的html文件:
<html> <title id='main' mouse='你好'>我是標題</title><body>我是內容</body> </html>
需求是,提取出標題的屬性值,以及內容:
代碼如下:
import html.parser as h class MyHTMLParser(h.HTMLParser): a_t=False def handle_starttag(self, tag, attrs): #print("開始一個標簽:",tag) print() if str(tag).startswith("title"): print(tag) self.a_t=True for attr in attrs: print(" 屬性值:",attr) def handle_endtag(self, tag): if tag == "title": self.a_t=False #print("結束一個標簽:",tag) def handle_data(self, data): if self.a_t is True: print("得到的數據: ",data) p=MyHTMLParser() p.feed("<html> <title id='main' mouse='你好'>我是標題</title><body>我是內容</body> </html>") p.close() 運行結果如下:
title 屬性值: ('id', 'main') 屬性值: ('mouse', '你好') 得到的數據: 我是標題 主要的技術就是繼承了HTMLParser類,然后重寫了里面的一些方法,來完成自己的業務,從上面的代碼里,發現如果想獲取某個標簽的內容,還是比較麻煩的,當然這是python里面最簡單的html解析方式,還有很多其他組件,scrapy等等,里面支持Xpath路徑解析,使用起來非常簡潔清爽。
解析代碼學會之后,我們就可以將使用urllib包,抓取到的數據交給htmlparser解析,從而提取出我們所需要的內容。
以上就是Python 網頁解析HTMLParse的實例詳解,如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
新聞熱點
疑難解答