抓取單一網站網頁內容時通常採用正規匹配的方式,但不同網站之間結構千奇百怪,很難用統一的正規表示式進行匹配。 《基於行塊分佈函數的通用網頁正文抽取演算法》的作者總結了一般從網頁中提取文章正文的方法,提出基於行塊分佈的正文抽取演算法,並給出了 PHP 、Java 等實現。此演算法的主要原理基於兩點:1.正文區密度:在去除HTML中所有tag之後,正文區字元密度較高,較少出現多行空白;2、行塊長度:非正文區域的內容一般單獨標籤(行塊)中較短。演算法步驟如下:
1、去除所有tag,包括樣式、Js腳本內容等,但保留原有的換行符n
2、將網頁內容按行分割,定義行塊$block_i$ 為第$[i, i + blockSize]$ 行文字總和並給出行塊長度基於行號的分佈函數:
3、正文出現在最長的行塊,截取兩邊至行塊長度0 的範圍:
4、如果需要提取正文區域出現的圖片,只需要在第一步去除tag時保留標籤的內容:
就是【python教學】網頁正文及內容圖片擷取演算法的內容,更多相關內容請關注PHP中文網(www.php.cn)!