最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中使用HTMLParser解析html實(shí)例

 更新時間:2015年02月08日 09:35:18   投稿:junjie  
這篇文章主要介紹了Python中使用HTMLParser解析html實(shí)例,本文直接給出使用示例,并總結(jié)出HTMLParser含有的方法分為兩類,一類是需要顯式調(diào)用的,而另一類不需顯示調(diào)用,需要的朋友可以參考下

前幾天遇到一個問題,需要把網(wǎng)頁中的一部分內(nèi)容挑出來,于是找到了urllib和HTMLParser兩個庫.urllib可以將網(wǎng)頁爬下來,然后交由HTMLParser解析,初次使用這個庫,在查官方文檔時也遇到了一些問題,在這里寫下來與大家分享.

一個例子

復(fù)制代碼 代碼如下:

from HTMLParser import HTMLParser
class MyHTMLParser(HTMLParser):
  def handle_starttag(self, tag, attrs):
    print "a start tag:",tag,self.getpos()
parser=MyHTMLParser()
parser.feed('<div><p>"hello"</p></div>')

這個例子里HTMLParser是基類,重載了他的handle_starttag方法,輸出了一些信息.parser是MyHTMLParser的實(shí)例,調(diào)用feed方法開始解析函數(shù).值得注意的是,不需要顯示調(diào)用handle_starttag方法就會執(zhí)行.

HTMLParser方法的調(diào)用方式困惑了我很長時間,看了很多博文才恍然大悟,HTMLParser含有的方法分為兩類,一類是需要顯式調(diào)用的,而另一類不需顯示調(diào)用.

不需顯式調(diào)用的方法

下面的這些函數(shù)在解析的過程中會觸發(fā),但是默認(rèn)情況下不會產(chǎn)生任何副作用,因而我們要根據(jù)自己的需求重載.

1.HTMLParser.handle_starttag(tag,attrs): 解析時遇到開始標(biāo)簽調(diào)用,如<p class='para'>,參數(shù)tag是標(biāo)簽名,這里是'p',attrs為標(biāo)簽所有屬性(name,value)列表,這里是[('class','para')]

2.HTMLParser.handle_endtag(tag): 遇到結(jié)束標(biāo)簽時調(diào)用,tag是標(biāo)簽名

3.HTMLPars.handle_data(data): 遇到標(biāo)簽中間的內(nèi)容時調(diào)用,如<style> p {color: blue; }</style>,參數(shù)data為開閉標(biāo)簽間的內(nèi)容.值得注意的是在形如<div><p>...</p></div>的位置,并不會在div處調(diào)用,而是只在p處調(diào)用

當(dāng)然還有其他函數(shù),這里不做介紹

顯式調(diào)用的方法

1.HTMLParser.feed(data): 參數(shù)為需要解析的html字符串,調(diào)用后字符串開始被解析

2.HTMLParser.getpos(): 返回當(dāng)前的行號和偏移位置,如(23,5)

3.HTMLParser.get_starttag_text(): 返回當(dāng)前位置最近的開始標(biāo)簽的內(nèi)容

所有的內(nèi)容寫完了,最后還有一點(diǎn)注意事項(xiàng),HTMLParser只是一個簡單的模塊,解析html的功能并不完善,例如不能準(zhǔn)確的分別開標(biāo)簽和"自閉標(biāo)簽",看下面代碼:

復(fù)制代碼 代碼如下:

from HTMLParser import HTMLParser
class MyHTMLParser(HTMLParser):
  def handle_starttag(self,tag,attrs):
    print 'begin tag',tag
  def handle_startendtag(self,tag,attrs):
    print 'begin end tag',tag

str1='<br>'
str2='<br/>'
parser=MyHTMLParser()

parser.feed(str1)    # 輸出 "begin tag br"
parser.feed(str2)    # 輸出 "begin end br"

相關(guān)文章

  • Python?Playwright的使用詳解

    Python?Playwright的使用詳解

    本篇博客為大家介紹一款新的自動化測試工具,效果類似?selenium,但是這個模塊年輕。模塊名稱為?playwright-python,微軟開源的,是針對?Python?語言的純自動化工具,感興趣的可以了解一下
    2022-10-10
  • Python要如何實(shí)現(xiàn)列表排序的幾種方法

    Python要如何實(shí)現(xiàn)列表排序的幾種方法

    這篇文章主要介紹了Python要如何實(shí)現(xiàn)列表排序的幾種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • python多線程抽象編程模型詳解

    python多線程抽象編程模型詳解

    這篇文章主要為大家詳細(xì)介紹了python多線程抽象編程模型,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • python編程簡單幾行代碼實(shí)現(xiàn)視頻轉(zhuǎn)換Gif示例

    python編程簡單幾行代碼實(shí)現(xiàn)視頻轉(zhuǎn)換Gif示例

    這篇文章主要為大家介紹了簡單使用幾行python代碼就可以實(shí)現(xiàn)將視頻轉(zhuǎn)換Gif的示例過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-10-10
  • Python3 循環(huán)語句(for、while、break、range等)

    Python3 循環(huán)語句(for、while、break、range等)

    這篇文章主要介紹了Python3 循環(huán)語句(for、while、break、range等),大家把下面的文章看完就基本上就可以了解了python的循環(huán)實(shí)現(xiàn)方式了
    2017-11-11
  • python?包之?multiprocessing?多進(jìn)程

    python?包之?multiprocessing?多進(jìn)程

    這篇文章主要介紹了python?包之?multiprocessing?多進(jìn)程,首先創(chuàng)建一個進(jìn)程。實(shí)例化?Process?類創(chuàng)建一個進(jìn)程對象、然后調(diào)用它的?start?方法即可生成一個子進(jìn)程,下文更多相關(guān)資料,需要的朋友可以參考一下
    2022-04-04
  • python實(shí)現(xiàn)發(fā)送QQ郵件(可加附件)

    python實(shí)現(xiàn)發(fā)送QQ郵件(可加附件)

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)發(fā)送QQ郵件,可添加附件功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • python基于celery實(shí)現(xiàn)異步任務(wù)周期任務(wù)定時任務(wù)

    python基于celery實(shí)現(xiàn)異步任務(wù)周期任務(wù)定時任務(wù)

    這篇文章主要介紹了python基于celery實(shí)現(xiàn)異步任務(wù)周期任務(wù)定時任務(wù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • Python3和PyCharm安裝與環(huán)境配置【圖文教程】

    Python3和PyCharm安裝與環(huán)境配置【圖文教程】

    這篇文章主要介紹了Python3和PyCharm安裝與環(huán)境配置,結(jié)合圖文形式詳細(xì)分析了Python3和PyCharm的安裝、環(huán)境配置、測試命令及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2020-02-02
  • python抓取網(wǎng)頁圖片并放到指定文件夾

    python抓取網(wǎng)頁圖片并放到指定文件夾

    這篇文章主要介紹了python抓取網(wǎng)頁圖片并放到指定文件夾,需要的朋友可以參考下
    2014-04-04

最新評論

连南| 固镇县| 青海省| 乐业县| 麻阳| 澳门| 十堰市| 神木县| 瓦房店市| 鹤岗市| 湘阴县| 颍上县| 长岭县| 凤山市| 清丰县| 尚义县| 龙川县| 敦化市| 紫阳县| 建宁县| 班玛县| 胶州市| 巴林右旗| 锦屏县| 广饶县| 古浪县| 隆安县| 唐海县| 泗阳县| 汉寿县| 杭锦后旗| 惠州市| 噶尔县| 卢湾区| 郧西县| 平塘县| 大港区| 慈溪市| 赣榆县| 本溪市| 平谷区|