首頁 >後端開發 >Python教學 >【python教學】網頁正文及內容圖片擷取演算法

【python教學】網頁正文及內容圖片擷取演算法

黄舟
黄舟原創
2017-02-07 16:16:562616瀏覽

抓取單一網站網頁內容時通常採用正規匹配的方式,但不同網站之間結構千奇百怪,很難用統一的正規表示式進行匹配。 《基於行塊分佈函數的通用網頁正文抽取演算法》的作者總結了一般從網頁中提取文章正文的方法,提出基於行塊分佈的正文抽取演算法,並給出了 PHP 、Java 等實現。此演算法的主要原理基於兩點:1.正文區密度:在去除HTML中所有tag之後,正文區字元密度較高,較少出現多行空白;2、行塊長度:非正文區域的內容一般單獨標籤(行塊)中較短。演算法步驟如下:

1、去除所有tag,包括樣式、Js腳本內容等,但保留原有的換行符n

【python教學】網頁正文及內容圖片擷取演算法

2、將網頁內容按行分割,定義行塊$block_i$ 為第$[i, i + blockSize]$ 行文字總和並給出行塊長度基於行號的分佈函數:

【python教學】網頁正文及內容圖片擷取演算法


3、正文出現在最長的行塊,截取兩邊至行塊長度0 的範圍:

【python教學】網頁正文及內容圖片擷取演算法


4、如果需要提取正文區域出現的圖片,只需要在第一步去除tag時保留【python教學】網頁正文及內容圖片擷取演算法標籤的內容:


就是【python教學】網頁正文及內容圖片擷取演算法的內容,更多相關內容請關注PHP中文網(www.php.cn)! 【python教學】網頁正文及內容圖片擷取演算法

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn