无法解析来自网页的信息

我正在尝试从我的 node.js 项目https://stockx.com/api/products/nike-daybreak-undercover-black?includes=market上的此链接解析信息


当我通过邮递员访问链接并在网络浏览器上访问 url 时,我能够获取信息。但是,当我尝试通过我的 node.js 项目访问请求时,它说访问被拒绝。知道为什么吗?谢谢。这是我的代码:


const express = require('express');

const request = require('request');

const cheerio = require('cheerio');

const axios = require('axios')

const app     = express();


app.get('/', function(req, res){

   let shoe =req.query.shoe;

    let url = 'https://stockx.com/api/products/nike-daybreak-undercover-black?includes=market'

    request(url, function(error, response, html) {


        if (!error) {

          var $ = cheerio.load(html);

          console.log(html)


          res.send();

        }


    });


});

app.listen('8080');

console.log('API is running on http://localhost:8080');

module.exports = app;


蝴蝶不菲
浏览 133回答 2
2回答

30秒到达战场

您只需要在标题中添加“User-Agent”。您尝试从中获取数据的网站拒绝所有没有 User-Agent 的请求以避免抓取。const options = {    url: 'https://stockx.com/api/products/nike-daybreak-undercover-black?includes=market',    headers: {        'User-Agent': 'request'    }};request(options, function(error, response, html) {    console.log('err: ', error);    if (!error) {        var $ = cheerio.load(html);        console.log(html)        res.send(html);    }});

交互式爱情

我已经尝试了以下代码并且它有效// ...app.get('/', function(req, res){  //  let shoe =req.query.shoe;    let url = 'https://stockx.com/api/products/nike-daybreak-undercover-black?includes=market'    axios({      method : 'get',      url,      headers : { withCredentials: true, 'User-Agent' : 'Postman' }    })    .then(data => {      console.log('data', data.data);    })    .catch(err => {      console.log('err', err);    })    res.send().status(200);});
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript