Python 網(wǎng)頁解析HTMLParse的實例詳解
Python 網(wǎng)頁解析HTMLParse的實例詳解
使用python將網(wǎng)頁抓取下來之后,下一步我們就應該解析網(wǎng)頁,提取我們所需要的內(nèi)容了,在python里提供了一個簡單的解析模塊HTMLParser類,使用起來也是比較簡單的,解析語法沒有用到XPath類似的簡潔模式,但新手用起來還是比較容易的,看下面的例子:
現(xiàn)在一個模擬的html文件:
<html> <title id='main' mouse='你好'>我是標題</title><body>我是內(nèi)容</body> </html>
需求是,提取出標題的屬性值,以及內(nèi)容:
代碼如下:
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("結(jié)束一個標簽:",tag) def handle_data(self, data): if self.a_t is True: print("得到的數(shù)據(jù): ",data) p=MyHTMLParser() p.feed("<html> <title id='main' mouse='你好'>我是標題</title><body>我是內(nèi)容</body> </html>") p.close()
運行結(jié)果如下:
title 屬性值: ('id', 'main') 屬性值: ('mouse', '你好') 得到的數(shù)據(jù): 我是標題
主要的技術(shù)就是繼承了HTMLParser類,然后重寫了里面的一些方法,來完成自己的業(yè)務(wù),從上面的代碼里,發(fā)現(xiàn)如果想獲取某個標簽的內(nèi)容,還是比較麻煩的,當然這是python里面最簡單的html解析方式,還有很多其他組件,scrapy等等,里面支持Xpath路徑解析,使用起來非常簡潔清爽。
解析代碼學會之后,我們就可以將使用urllib包,抓取到的數(shù)據(jù)交給htmlparser解析,從而提取出我們所需要的內(nèi)容。
以上就是Python 網(wǎng)頁解析HTMLParse的實例詳解,如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
關(guān)于pygame.surface.blit()方法4個參數(shù)的使用
這篇文章主要介紹了關(guān)于pygame.surface.blit()方法4個參數(shù)的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03Django模板獲取field的verbose_name實例
這篇文章主要介紹了Django模板獲取field的verbose_name實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05深度學習的MNIST手寫數(shù)字數(shù)據(jù)集識別方式(準確率99%,附代碼)
這篇文章主要介紹了深度學習的MNIST手寫數(shù)字數(shù)據(jù)集識別方式(準確率99%,附代碼),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06Python使用psutil庫對系統(tǒng)數(shù)據(jù)進行采集監(jiān)控的方法
利用psutil庫可以獲取系統(tǒng)的一些信息,如cpu,內(nèi)存等使用率,從而可以查看當前系統(tǒng)的使用情況,實時采集這些信息可以達到實時監(jiān)控系統(tǒng)的目的。本文給大家介紹Python psutil系統(tǒng)監(jiān)控的相關(guān)知識,感興趣的朋友一起看看吧2021-08-08