使用 Node.js 來開發一個資訊爬蟲(二)-- HTML內容提取優化

以前寫過一篇使用 Node.js 來開發一個資訊爬蟲,其中的HTML內容提取使用cheerio設置提取頁面元素,若是隻須要抓取一個網站那是沒有什麼問題的,可是若是須要抓取多個網站的話就會產生不少以下面截圖邏輯結構差很少的代碼,因此就進行了一下優化node

達到的效果

根據設置好的數據結構和提取的元素就能夠提取對應的數據git

數據結構

let obj = {
  title: { dom: '.title-link', target: 'text' },
  link: { dom: '.title-link', target: 'attr', attrName: 'href' },
  content: { dom: '.content-text', target: 'text' }
}
複製代碼

數據結果

[ { title: '我是標題',
    link: 'https://juejin.im',
    content: '我是內容' } ]
複製代碼

實現代碼

extract () {
    // 列表元素
    let nodeList = this.$(this.zoneDom).find(this.listDom)
    // 列表對象數據提取
    nodeList.each((i, e) => {
      // 遍歷設置好的數據結構,經過dom和target進行數據提取
      Object.keys(this.dataDoms).forEach(objEle => {
      })
    })
  }
複製代碼

詳細的代碼地址:Extract.jsgithub

這樣就能夠啦:)bash

相關文章
相關標籤/搜索