我們繼續(xù)上一次的進度养匈,這一次我們爬一個網(wǎng)站的圖片哼勇。
- 文中使用的是chrome瀏覽器,沒有的話需要安裝呕乎。
- 我的node版本是7.10.0积担。
start
這次我們爬取的網(wǎng)站是多玩圖庫。
我們想要獲取的dom節(jié)點是圖下的$('li.masonry-brick')節(jié)點楣嘁,里面包括我們想要的網(wǎng)頁鏈接和圖片鏈接磅轻。
$('.masonry-brick')節(jié)點
代碼如下珍逸,我的index.js文件
require('chromedriver'); //chrome瀏覽器驅(qū)動
let webdriver = require('selenium-webdriver'); //瀏覽器自動操作
let cheerio = require('cheerio'); //獲取頁面數(shù)據(jù)
let fs = require('fs');
let driver = new webdriver.Builder().forBrowser('chrome').build()
let data = new Map()
driver.get('http://tu.duowan.com/tu') //目標(biāo)網(wǎng)站
driver.getPageSource().then((val) => {
const $ = cheerio.load(val); //解析網(wǎng)站
let result = $('.masonry-brick:not(.tags) a').find('img') //尋找有圖片的節(jié)點
let parent,textNode,title,link,imgSrc;
result.each((i,elem) => {
let obj = {};
parent = $(elem).closest('li') //圖片所在li父節(jié)點
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
獲取到相關(guān)圖片和鏈接
成功!