日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python HTMLParser

發布時間:2023/12/8 python 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python HTMLParser 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
對搜索引擎、文件索引、文檔轉換、數據檢索、站點備份或遷移等應用程序來說,經常用到對網頁(即HTML文件)的解析處理。事實上,通過Python語言提供的各種模塊,我們無需借助Web服務器或者Web瀏覽器就能夠解析和處理HTML文檔。本文上篇中,我們介紹了一個可以幫助簡化打開位于本地和Web上的HTML文檔的Python模塊。在本文中,我們將論述如何使用Python模塊來迅速解析在HTML文件中的數據,從而處理特定的內容,如鏈接、圖像和Cookie等。同時還會介紹如何規范HTML文件的格式標簽。

  一、從HTML文檔中提取鏈接

  Python語言還有一個非常有用的模塊HTMLParser,該模塊使我們能夠根據HTML文檔中的標簽來簡潔、高效地解析HTML文檔。所以,在處理HTML文檔的時候,HTMLParser是最常用的模塊之一。


#!/usr/bin/python import urllib, HTMLParserclass parseLinks(HTMLParser.HTMLParser):def handle_starttag(self,tag,attrs):if tag=='a':for name,value in attrs:if name=='href':print value,"\n", self.get_starttag_text()lParser = parseLinks() lPurl = urllib.urlopen("http://www.winddesktop.com").read() f = open('./hyplink.text','a') f.write(lPurl) f.close() lParser.feed(lPurl) lParser.close() #f.write(lParser(lPurl)) #f.close()

處理HTML文檔的時候,我們常常需要從其中提取出所有的鏈接。使用HTMLParser模塊后,這項任務將變得易如反掌。首先,我們需要定義一個新的HTMLParser類,以覆蓋handle_starttag()方法,我們將使用這個方法來顯示所有標簽的HRef屬性值。

  定義好新的HTMLParser類之后,需要創建一個實例來返回HTMLParser對象。然后,就可以使用urllib.urlopen(url)打開HTML文檔并讀取該HTML文件的內容了。

  為了解析HTML文件的內容并顯示包含其中的鏈接,可以使用read()函數將數據傳遞給HTMLParser對象。HTMLParser對象的feed函數將接收數據,并通過定義的HTMLParser對象對數據進行相應的解析。需要注意,如果傳給HTMLParser的feed()函數的數據不完整的話,那么不完整的標簽會保存下來,并在下一次調用feed()函數時進行解析。當HTML文件很大,需要分段發送給解析器的時候,這個功能就會有用武之地了。

二、從HTML文檔中提取圖像

  處理HTML文檔的時候,我們常常需要從其中提取出所有的圖像。使用HTMLParser模塊后,這項任務將變得易如反掌。首先,我們需要定義一個新的HTMLParser類,以覆蓋handle_starttag()方法,該方法的作用是查找img標簽,并保存src屬性值所指的文件。

#!/usr/bin/python/ #-*-coding:utf-8-*- import HTMLParser import urllib import sys,urllib2,htmllib,formatter#urlString = "http://www.winddesktop.com" urlString = "http://image.baidu.com" def getimage(addr):u = urllib.urlopen(addr)data = u.read()splitPath = addr.split('/')fName = splitPath.pop()print "Saving %s" %fNamef = open("./image/"+fName,'wb')f.write(data)f.close()class parseImages(HTMLParser.HTMLParser):def handle_starttag(self,tag,attrs):if tag == 'img':for name,value in attrs:if name == 'src':getimage(urlString+"/"+value)lParser = parseImages() u = urllib.urlopen(urlString) print "Opening URL \n------" print u.info() lParser.feed(u.read()) lParser.close()

 三、從HTML文檔中提取文本

  處理HTML文檔的時候,我們常常需要從其中提取出所有的文本。使用HTMLParser模塊后,這項任務將變得非常簡單了。首先,我們需要定義一個新的HTMLParser類,以覆蓋handle_data()方法,該方法是用來解析并文本數據的。



.....

http://blog.csdn.net/eting1987/article/details/6290428




總結

以上是生活随笔為你收集整理的python HTMLParser的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。