列表頁解析
列表定位
- 同性質子元素排序
- 元素面積排序
- 用戶確認區域後元素xpath並存儲
分頁按鈕定位
- 不包含子元素且文字包含「下一頁,點擊查看更多」等文字的標籤。
- 調用dom.click()方法自動進入下一頁,或者提取連接,存儲xpath
列表項解析
- 標題解析:列表項中字體權重最大的標籤爲標題。用戶確認後存儲xpath。
- 詳情連接提取:標題往上找到a標籤。解析後存儲xpath
- 封面解析:列表項中面積最大的圖片。存儲xpath
詳情頁解析
內容識別
- 標題:標題使用列表項的標題便可。
- 詳情:文本類子元素最多的元素,且頁面面積佔用最大。存儲xpath。
- 時間解析:正則匹配時間便可,匹配到以後嘗試緩存xpath。
- 來源解析:正則匹配便可,同上。
後處理
- 詳情:但願保留詳情的一些排版,好比代碼塊,高亮區域等。將HTML轉爲Markdown便可。在使用時轉回HTML顯示。
- 時間:使用dateparser將時間轉爲ISO8601標準時間或者時間戳便可。
- 存儲:建議存儲至MongoDB,無需提早定義表結構。
上述方案兼容90%的標準網站,好比拉鉤,京東,segmentfault,v2ex,58同城等等。
DEMO已經開發完畢,交流討論或者商業合做請發站內信。segmentfault