python學習 網頁解析

2021-09-30 12:25:16 字數 2986 閱讀 1951

python網頁解析工具,可以根據標籤特點獲取相應標籤中的內容。開始沒有找到beautifulsoap這個強大的工具,同時也想提公升程式的執行效率(自己的程式僅需執行一次),這裡自己實現了乙個可以根據html標籤獲取到網頁元素的程式,這個程式是基於查詢的形式對網頁解析,沒有對網頁元素進行分類和歸類。

程式基於python3.0,以上版本,分為兩大塊,webclient、html元素解析,具體的實現如下:

這裡採用urllib模組對網頁url進行訪問並返回相應的網頁資訊。

none這裡,我們利用html中各個標籤的對稱性,提出乙個演算法,找到起始標籤,對於相同的元素標籤如div進行計數,當<div>與</div>相同時,返回其間的資料作為乙個模組,具體**如下:

class

******_parser:

defparser

(self, data, stag, etag):

epos = 0

npos = epos

totallen = 0

elen = len(etag)

dlen = len(data)

depth = 0

while

true:

epos = data[totallen:].find(etag)

if epos < 0:

return -1

else:

count = data[totallen:epos+totallen].count(stag)

depth += count

depth -=1

epos += elen

totallen += epos

if depth == 0:

return totallen

if totallen >= dlen:

return -1

return -1

deffeed

(self, data, stag, etag):

headtag = stag.split(' ')[0]

itemlist =

pseek = 0

while

true:

npos = data[pseek:].find(stag)

if npos < 0:

return itemlist

nlen = self.parser(str(data[pseek+npos:]), headtag, etag)

if nlen >= 0:

pseek += npos+nlen

else:

return itemlist

最終,我選取了劍俠情緣網路版三的新聞頁面進行抓取。**如下:

class

jx3_spider:

defget_news

(self, page):

myparser = ******_parser()

return myparser.feed(page, u'', u'

'); def

get_css

(self, page):

myparser = ******_parser()

return myparser.feed(page, u', u'/>')

if __name__ == '__main__':

myclient = htmlclient()

mypage = myclient.getpage("")

jx3_spider = jx3_spider()

jx3_news = jx3_spider.get_news(mypage)

jx3_css = jx3_spider.get_css(mypage)

infile = input('>')

with open("jx3_news.html", 'wb') as jx3file:

jx3file.write(b'')

jx3file.write(b'')

for item in jx3_css:

jx3file.write(bytes(item, 'utf-8'))

for item in jx3_news:

jx3file.write(bytes(item, 'utf-8'))

jx3file.close()

opencv學習網頁

opencv wiki 計算機視覺庫 opencv小組 程式原始碼搜尋 戀雪 人工智慧 寂寞天堂 非特定人離線手寫漢字識別 cxcore陣列操作 模式識別與智慧型系統開發實驗室 卡梅隆大學去雪 稀疏表達 計算機視覺文獻與 資源 壓縮感知 opencv程式設計簡介 96 e7 a8 8b e7 ae ...

opencv學習網頁

opencv wiki 計算機視覺庫 opencv小組 程式原始碼搜尋 戀雪 人工智慧 寂寞天堂 非特定人離線手寫漢字識別 cxcore陣列操作 模式識別與智慧型系統開發實驗室 卡梅隆大學去雪 稀疏表達 計算機視覺文獻與 資源 壓縮感知 opencv程式設計簡介 96 e7 a8 8b e7 ae ...

快速學習網頁爬蟲之python

1.首先獲取網頁內容的方法 html requests.get url,headers headers,proxies proxys header 指模擬瀏覽器頭,proxys ip,requests指python獲取內容的物件 2.這樣一句話就可以快速獲取網頁內容了,獲取到了網頁內容,我們還需要進...