智能web網頁爬蟲原理,不用寫一行代碼

列表頁解析

clipboard.png

列表定位

  1. 同性質子元素排序
  2. 元素面積排序
  3. 用戶確認區域後元素xpath並存儲

分頁按鈕定位

  1. 不包含子元素且文字包含「下一頁,點擊查看更多」等文字的標籤。
  2. 調用dom.click()方法自動進入下一頁,或者提取連接,存儲xpath

列表項解析

  1. 標題解析:列表項中字體權重最大的標籤爲標題。用戶確認後存儲xpath。
  2. 詳情連接提取:標題往上找到a標籤。解析後存儲xpath
  3. 封面解析:列表項中面積最大的圖片。存儲xpath

詳情頁解析

clipboard.png

內容識別

  1. 標題:標題使用列表項的標題便可。
  2. 詳情:文本類子元素最多的元素,且頁面面積佔用最大。存儲xpath。
  3. 時間解析:正則匹配時間便可,匹配到以後嘗試緩存xpath。
  4. 來源解析:正則匹配便可,同上。

後處理

  • 詳情:但願保留詳情的一些排版,好比代碼塊,高亮區域等。將HTML轉爲Markdown便可。在使用時轉回HTML顯示。
  • 時間:使用dateparser將時間轉爲ISO8601標準時間或者時間戳便可。
  • 存儲:建議存儲至MongoDB,無需提早定義表結構。
上述方案兼容90%的標準網站,好比拉鉤,京東,segmentfault,v2ex,58同城等等。

DEMO已經開發完畢,交流討論或者商業合做請發站內信。segmentfault

相關文章
相關標籤/搜索