利用Python抓取和解析網頁 上

2021-05-21 13:49:06 字數 3639 閱讀 3523

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

一、解析url

通過python所帶的urlparse模組,我們能夠輕鬆地把url分解成元件,之後,還能將這些元件重新組裝成乙個url。當我們處理html 文件的時候,這項功能是非常方便的。

函式urlparse(urlstring [, default_scheme [, allow_fragments]])的作用是將url分解成不同的組成部分,它從urlstring中取得url,並返回元組 (scheme, netloc, path, parameters, query, fragment)。注意,返回的這個元組非常有用,例如可以用來確定網路 協議(http、ftp等等 )、伺服器 位址、檔案路徑,等等。

函式urlunparse(tuple)的作用是將url的元件裝配成乙個url,它接收元組(scheme, netloc, path, parameters, query, fragment)後,會重新組成乙個具有正確格式的url,以便供python的其他html解析模組使用。

函式urljoin(base, url [, allow_fragments]) 的作用是拼接url,它以第乙個引數作為其基位址,然後與第二個引數中的相對位址相結合組成乙個絕對url位址。函式urljoin在通過為url基位址 附加新的檔名的方式來處理同一位置處的若干檔案的時候格外有用。需要注意的是,如果基位址並非以字元/結尾的話,那麼url基位址最右邊部分就會被這個 相對路徑所替換。比如,url的基位址為http://www.testpage.com/pub,url的相對位址為test.html,那麼兩者將合 並成http://www.testpage.com/test.html,而非http://www.testpage.com/pub /test.html。如果希望在該路徑中保留末端目錄,應確保url基位址以字元/結尾。

下面是上面幾個函式的詳細一點的用法舉例:

#將位址解析成元件

print

"用google搜尋python時位址列中url的解析結果

#將元件反解析成url

print

"/反解析python文件頁面的url

"unparsedurl

=urlparse.urlunparse( /

(urlscheme, urllocation, urlpath,

'',

'',

''))

print"/t

"+unparsedurl

#將路徑和新檔案組成乙個新的url

print

"/n利用拼接方式新增更多python文件頁面的url

"for

mod

inmodlist:

newurl

=urlparse.urljoin(unparsedurl, /

"module-%s.html"%

(mod))

print"/t

"+newurl

#通過為路徑新增乙個子路徑來組成乙個新的url

print

"/n通過拼接子路徑來生成python文件頁面的url

"newurl

=urlparse.urljoin(unparsedurl,

"module-urllib2/request-objects.html")

print"/t

"+newurl

上述**的執行結果如下所示:

用google搜尋python時位址列中url的解析結果('

'')反解析python文件頁面的url

利用拼接方式新增更多python文件頁面的url

通過拼接子路徑來生成python文件頁面的url

利用Python抓取和解析網頁 1

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

利用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...