我在genius.com上搜刮歌词;我在谷歌上搜索过,似乎找不到我的代码不起作用的原因。我正在genius.org页面上从div中抓取文本(即。,https://genius.com/britney-spears-baby-one-more-time-lyrics).
查看页面源代码时,div似乎存在,并且在源代码中填充了文本,而不是通过javascript或其他方式(如果是,cheerio在这个上下文中不会工作0%的时间吗?)当我运行代码时,它工作50%的时间;其他时候,它返回一个空值。
我看到了这一点,但这似乎是一个黑客解决方案,我真的不明白为什么我的async/await没有为phin的完整响应工作。。。
这是有问题的代码
const scraperRouter = require('express').Router()
const p = require('phin')
const cheerio = require('cheerio')
scraperRouter.get('/', async (req, res) => {
const url = req.header('geniusUrl')
const _res = await p(url)
try {
let $ = cheerio.load(_res.body)
const lyrics = $('.lyrics').text()
res.send(lyrics)
}
catch (e) {
console.log(e)
res.json(e)
}
})
谢谢你的建议。谢谢
暂无答案!
目前还没有任何答案,快来回答吧!