node爬虫(二)

我们继续上一次的进度,这一次我们爬一个网站的图片。

  • 文中使用的是chrome浏览器,没有的话需要安装。
  • 我的node版本是7.10.0。

start

这次我们爬取的网站是多玩图库。

我们想要获取的dom节点是图下的$('li.masonry-brick')节点,里面包括我们想要的网页链接和图片链接。

node爬虫(二)_第1张图片
$('.masonry-brick')节点

代码如下,我的index.js文件

require('chromedriver'); //chrome浏览器驱动
let webdriver = require('selenium-webdriver'); //浏览器自动操作
let cheerio = require('cheerio'); //获取页面数据
let fs = require('fs');

let driver = new webdriver.Builder().forBrowser('chrome').build()

let data = new Map()

driver.get('http://tu.duowan.com/tu')  //目标网站
driver.getPageSource().then((val) => {
  const $ = cheerio.load(val);  //解析网站
  let result = $('.masonry-brick:not(.tags) a').find('img') //寻找有图片的节点
  let parent,textNode,title,link,imgSrc;
  result.each((i,elem) => {
    let obj = {};
    parent = $(elem).closest('li') //图片所在li父节点
    textNode = parent.find('em a')
    title = textNode.text()
    link = textNode.attr('href')
    imgSrc = $(elem).attr('src')

    obj = {
      imgSrc,
      link
    }
    data.set(title,obj)
  })

  for(item of data.entries()) {
    console.log(item)
  }
  driver.close()
})

在cmd输入命令,node index.js

node爬虫(二)_第2张图片
获取到相关图片和链接

成功!


相关文章信息:
node爬虫一
node爬虫二
node爬虫三

你可能感兴趣的:(node爬虫(二))