我们继续上一次的进度,这一次我们爬一个网站的图片。
- 文中使用的是chrome浏览器,没有的话需要安装。
- 我的node版本是7.10.0。
start
这次我们爬取的网站是多玩图库。
我们想要获取的dom节点是图下的$('li.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
成功!