cheerio有时返回空字符串

pgccezyw  于 2021-09-13  发布在  Java
关注(0)|答案(0)|浏览(303)

我在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)
        }
    })

谢谢你的建议。谢谢

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题