2

我正在尝试使用 request-promise 从 Asos.com 获取商品的价格。当我尝试运行下面的代码时,出现 403 错误。尽管我尝试抓取的 URL 是公开的,不需要密钥,我是否可能会收到此错误?

http://www.asos.com/api/product/catalogue/v2/stockprice?productIds=10000496¤cy=SEK&keyStoreDataversion=7jhdf34h-6&store=ROE

我知道有些网站反对在他们的服务条款中进行抓取,但我只是想确定我不只是执行了这个错误,或者我是否真的被该网站阻止了。

const rp = require('request-promise');

var url = 'http://www.asos.com/api/product/catalogue/v2/stockprice?productIds=10000496&currency=SEK&keyStoreDataversion=7jhdf34h-6&store=ROE';

rp({ url:url, json:true })
  .then(function (data) {
    console.log(data.productPrice.current.value);
  })
  .catch(function (reason) {
    console.error("%s; %s", reason.error.message, reason.options.url);
    console.log("%j", reason.response.statusCode);
  });

4

1 回答 1

4

您应该添加“headers”参数,即:

rp({ 
  url:url, 
  headers: {
    'User-Agent': 'Request-Promise'
  },
  json:true 
})
于 2019-04-30T13:03:50.063 回答