superagent和cheerio 获取百度首页的内容,为什么获取到的不是网页源码,而是下图几行代码

1、代码:
const express = require('express');

const superagent = require('superagent');
const cheerio = require('cheerio');
const app = express();
const test = express();
app.get('/',(req, res,next) => {

superagent.get('https://www.baidu.com/')
    .end((err, sres) => {
        if(err) {
            return next(err);
        }
        // sres.text 里面存储着网页的 html 内容,将它传给 cheerio.load 之后
        // 就可以得到一个实现了 jquery 接口的变量,我们习惯性地将它命名为 `$`
        var $ = cheerio.load(sres.text);
        var items = [];
        console.log(sres.text);
        res.send(items);
    })

});

app.listen(3000,() => {

console.log('app islistening at port 3000');

})

2、console.log(sres.text)的结果如下,为什么获取的不是 百度首页查看源码时的内容呢
3、<html>
<head>

<script>
    location.replace(location.href.replace("https://","http://"));
</script>

</head>
<body>

<noscript><meta http-equiv="refresh" content="0;url=http://www.baidu.com/"></noscript>

</body>
</html>

希望各位大神赐教一二,解释一下原因,谢谢!

阅读 3.3k
1 个回答

是UA的问题

superagent.get(cnodeUrl)
    .set('User-Agent','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3642.0 Safari/537.36')
    .end((err, sres) => {
        // ...you code
    }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进