自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

講述面向?qū)ο蟮恼Z言——Python語言

開發(fā) 后端
在“面向?qū)ο蟆钡恼Z言中,程序是由數(shù)據(jù)和功能組合而成的對(duì)象構(gòu)建起來的,Python語言以一種非常強(qiáng)大又簡單的方式實(shí)現(xiàn)面向?qū)ο缶幊獭?/div>

Python語言確實(shí)是一種十分精彩又強(qiáng)大的語言,它合理地結(jié)合了高性能與使得編寫程序簡單有趣的特色,看完本文你肯定有不少收獲,希望本文能教會(huì)你更多東西。

對(duì)搜索引擎、文件索引、文檔轉(zhuǎn)換、數(shù)據(jù)檢索、站點(diǎn)備份或遷移等應(yīng)用程序來說,經(jīng)常用到對(duì)網(wǎng)頁(即HTML文件)的解析處理。事實(shí)上,通過Python語言提供的各種模塊,我們無需借助Web服務(wù)器或者Web瀏覽器就能夠解析和處理HTML文檔。

本文上篇中,我們介紹了一個(gè)可以幫助簡化打開位于本地和Web上的HTML文檔的Python模塊。在本文中,我們將論述如何使用Python模塊來迅速解析在HTML文件中的數(shù)據(jù)。從而處理特定的內(nèi)容,如鏈接、圖像和Cookie等。同時(shí)還會(huì)介紹如何規(guī)范HTML文件的格式標(biāo)簽,Python語言還有一個(gè)非常有用的模塊HTMLParser。

該模塊使我們能夠根據(jù)HTML文檔中的標(biāo)簽來簡潔、高效地解析HTML文檔。所以,在處理HTML文檔的時(shí)候,HTMLParser是最常用的模塊之一。處理HTML文檔的時(shí)候,我們常常需要從其中提取出所有的鏈接。使用HTMLParser模塊后,這項(xiàng)任務(wù)將變得易如反掌。

首先,我們需要定義一個(gè)新的HTMLParser類,以覆蓋handle_starttag()方法,我們將使用這個(gè)方法來顯示所有標(biāo)簽的HRef屬性值。定義好新的HTMLParser類之后,需要?jiǎng)?chuàng)建一個(gè)實(shí)例來返回Python語言。然后,就可以使用urllib.urlopen(url)打開HTML文檔并讀取該HTML文件的內(nèi)容了。

為了解析HTML文件的內(nèi)容并顯示包含其中的鏈接,可以使用read()函數(shù)將數(shù)據(jù)傳遞給HTMLParser對(duì)象。HTMLParser對(duì)象的feed函數(shù)將接收數(shù)據(jù),并通過定義的HTMLParser對(duì)象對(duì)數(shù)據(jù)進(jìn)行相應(yīng)的解析。

需要注意,如果傳給HTMLParser的feed()函數(shù)的數(shù)據(jù)不完整的話,那么不完整的標(biāo)簽會(huì)保存下來,并在下一次調(diào)用feed()函數(shù)時(shí)進(jìn)行解析。當(dāng)HTML文件很大,需要分段發(fā)送給解析器的時(shí)候,這個(gè)功能就會(huì)有用武之地了。下面是一個(gè)具體的例子。

  1.  import HTMLParser  
  2.  
  3.   import urllib  
  4.  
  5.   import sys  
  6.  
  7.   #定義HTML解析器  
  8.  
  9.   class parseLinks(HTMLParser.HTMLParser):  
  10.  
  11.   def handle_starttag(self, tag, attrs):  
  12.  
  13.   if tag == 'a':  
  14.  
  15.   for name,value in attrs:  
  16.  
  17.   if name == 'href':  
  18.  
  19.   print value  
  20.  
  21.   print self.get_starttag_text()  
  22.  
  23.   #創(chuàng)建HTML解析器的實(shí)例  
  24.  
  25.   lParser = parseLinks()  
  26.  
  27.   #打開HTML文件  
  28.  
  29.   lParser.feed(urllib.urlopen( \  
  30.  
  31.   "http://www.python.org/index.html").read())  
  32.  
  33.   lParser.close() 

上述代碼的運(yùn)行結(jié)果太長,在此省略,您可以自己運(yùn)行代碼試試。

【編輯推薦】

  1. 漫談Python 源代碼編制技巧
  2. 簡單易于操作的Python 工具詳解
  3. 有關(guān)Python應(yīng)用領(lǐng)域進(jìn)行說明介紹
  4. PythonAndroid面向?qū)ο蟮木幊獭?FONT>Python應(yīng)用程序
  5. 如何使用Python模塊解析配置文件 ?
責(zé)任編輯:chenqingxiang 來源: 中國IT實(shí)驗(yàn)室
相關(guān)推薦

2010-02-02 13:22:06

Python面向?qū)ο?/a>

2024-04-02 07:32:58

Go語言接口

2010-03-01 17:40:29

Python面向?qū)ο笳Z

2010-01-22 10:26:40

C++語言

2009-07-14 16:51:50

Jython中的對(duì)象

2010-08-24 16:00:43

C語言

2011-06-02 09:47:11

C語言重構(gòu)

2021-05-28 05:34:06

Golang語言編程

2022-10-21 09:01:41

StudentC++類型

2024-01-08 07:02:48

數(shù)據(jù)設(shè)計(jì)模式

2010-03-01 18:36:59

Python標(biāo)準(zhǔn)語言

2010-01-13 14:05:55

C++語言

2009-10-13 17:03:55

VB.NET面向?qū)ο?/a>

2020-04-15 11:07:31

C語言對(duì)象思想

2010-03-11 20:33:14

Python編程語言

2009-05-21 09:08:52

接口C++面向?qū)ο?/a>

2010-01-12 10:11:36

學(xué)習(xí)C++語言

2020-10-10 11:03:24

面向?qū)ο?/a>編程語言開發(fā)

2022-10-12 08:38:51

C語言classC++

2021-11-08 07:48:48

Go語言對(duì)象
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)