利用Python抓取和解析網頁 1

2021-06-03 20:59:09 字數 2067 閱讀 2672

利用python抓取和解析網頁(二), 對搜尋引擎、檔案索引、文件轉換、資料檢索、站點備份或遷移等應用程式來說,經常用到對網頁(即html檔案)的解析處理。事實上,通過python語言提供的

對搜尋引擎、檔案索引、文件轉換、資料檢索、站點備份或遷移等應用程式來說,經常用到對網頁(即html檔案)的解析處理。事實上,通過python語言提供的各種模組,我們無需借助web伺服器或者web瀏覽器就能夠解析和處理html文件。

對搜尋引擎、檔案索引、文件轉換、資料檢索、站點備份或遷移等應用程式來說,經常用到對網頁(即html檔案)的解析處理。事實上,通過python語言提供的各種模組,我們無需借助web伺服器或者web瀏覽器就能夠解析和處理html文件。本文上篇中,我們介紹了乙個可以幫助簡化開啟位於本地和web上的html文件的python模組。在本文中,我們將論述如何使用python模組來迅速解析在html檔案中的資料,從而處理特定的內容,如鏈結、影象和cookie等。同時還會介紹如何規範html檔案的格式標籤。 一、從html文件中提取鏈結

python語言還有乙個非常有用的模組htmlparser,該模組使我們能夠根據html文件中的標籤來簡潔、高效地解析html文件。所以,在處理html文件的時候,htmlparser是最常用的模組之一。

import

htmlparser

import

urllib

class

parselinks(htmlparser.htmlparser):

defhandle_starttag(self, tag, attrs):

iftag =='

a':for

name,value 

inattrs:

ifname =='

href':

print

value

print

self.get_starttag_text()

lparser 

=parselinks()

lparser.feed(urllib.urlopen(

"").read())

處理html文件的時候,我們常常需要從其中提取出所有的鏈結。使用htmlparser模組後,這項任務將變得易如反掌。首先,我們需要定義乙個新的htmlparser類,以覆蓋handle_starttag()方法,我們將使用這個方法來顯示所有標籤的href屬性值。

定義好新的htmlparser類之後,需要建立乙個例項來返回htmlparser物件。然後,就可以使用urllib.urlopen(url)開啟html文件並讀取該html檔案的內容了。

為了解析html檔案的內容並顯示包含其中的鏈結,可以使用read()函式將資料傳遞給htmlparser物件。htmlparser物件的feed函式將接收資料,並通過定義的htmlparser物件對資料進行相應的解析。需要注意,如果傳給htmlparser的feed()函式的資料不完整的話,那麼不完整的標籤會儲存下來,並在下一次呼叫feed()函式時進行解析。當html檔案很大,需要分段傳送給解析器的時候,這個功能就會有用武之地了。下面是乙個具體的例子

import

htmlparser

import

urllib

import

sys#

定義html解析器

class

parselinks(htmlparser.htmlparser):

defhandle_starttag(self, tag, attrs):

iftag =='

a':for

name,value 

inattrs:

ifname =='

href':

print

value

print

self.get_starttag_text()

#建立html解析器的例項

lparser 

=parselinks()

#開啟html檔案

lparser.feed(urllib.urlopen( \

"").read())

lparser.close()

上述**的執行結果太長,在此省略,您可以自己執行**試試。

利用Python抓取和解析網頁 上

對搜尋引擎 檔案索引 文件轉換 資料檢索 站點備份或遷移等應用程式來說,經常用到對網頁 即html檔案 的解析處理。事實上,通過python語言提供的各種模組,我們無需借助web伺服器 或 者web瀏覽器就能夠解析和處理html文件。本文將詳細介紹如何利用python抓取和解析網頁。首先,我們介紹乙...

利用Python抓取和解析網頁 3

對搜尋引擎 檔案索引 文件轉換 資料檢索 站點備份或遷移等應用程式來說,經常用到對網頁 即html檔案 的解析處理。事實上,通過python語言提供的各種模組,我們無需借助web伺服器或者web瀏覽器就能夠解析和處理html文件。三 從html文件中提取文字 處理html文件的時候,我們常常需要從其...

Python抓取網頁

在python中,使用urllib2這個元件來抓取網頁。coding utf 8 urllib2是python的乙個獲取urls uniform resource locators 的元件。import urllib2 它以urlopen函式的形式提供了乙個非常簡單的介面 response urll...