寶慕林4294392
2019-03-04 16:16:04
練手的一個(gè)項(xiàng)目,想爬取網(wǎng)易云上面的歌手信息代碼類似const request = require('superagent');const cheerio = require('cheerio');request .get('http://music.163.com/#/discover/artist/cat') .accept('text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8') .query({ id: 1001, initial: 65 })但是爬到的數(shù)據(jù)是字符串模板:<li class="j-item" data-userId=${user.userId} data-username=${user.nickname} data-index=${user_index}><a href="#"><img src=${user.avatarUrl}>${user.nickname}</a></li>應(yīng)該怎么解決呢?謝謝~
3 回答

慕的地8271018
TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊

繁星coding
TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超4個(gè)贊
首先,你得到${user.userId}
說明不是服務(wù)器渲染的,那么數(shù)據(jù)就只能是前端通過js渲染。
然后你有兩種方式得到這些數(shù)據(jù)
一是查看http請(qǐng)求,包括資源文件和XHR,看看哪個(gè)請(qǐng)求是得到這些數(shù)據(jù)的,但這種方式不一定能拿到你想要的頁面顯示的數(shù)據(jù),因?yàn)榭赡苡衅唇硬鸱诌^濾等規(guī)則,因此可能要做代碼分析。
二是打開一個(gè)headless
瀏覽器讓js執(zhí)行完成,再獲取元素顯示的值,如puppeteer
等。
添加回答
舉報(bào)
0/150
提交
取消