【问题标题】:Getting Request failed with status code 403 with axios get使用 axios get 获取请求失败,状态码为 403
【发布时间】:2020-03-11 12:36:20
【问题描述】:

我已经像这样设置了我的 axios:

    const agent = new https.Agent({
        rejectUnauthorized: false
    });

并像这样发送 get 调用:

    let data = await axios.get('https://www.skechers.com/en-us/', {
        httpsAgent: agent
     });

但是对于一些网址,我的请求失败并出现此错误:

请求失败,状态码 403

导致此错误的可能原因是什么。我尝试如下设置标题,但仍然收到错误

    let data = await axios.get(url, {
      httpsAgent: agent,
      headers: {
          'Access-Control-Allow-Origin': '*',
          'Access-Control-Allow-Methods': '*'
      }
    });

【问题讨论】:

  • 您需要发送一些凭据才能登录吗?
  • 不,它只是一个简单的调用来获取任何网站主页的 html 源。然后我使用cheeriojs过滤数据。
  • 你能把你得到的整个错误贴出来
  • 您将遇到 CORS 问题,您要做的是将所有 html 加载到您的页面上,您想解析它们的 HTML 吗?我看不出这个电话有什么意义
  • 没时间...检查 MDN 上的 CORS 并查看如何处理它。您也可以为此使用插件,但我不建议这样做

标签: javascript node.js web-scraping get axios


【解决方案1】:

我猜这与您使用 axios 时未发送 CSRF cookie 有关。您可以考虑两种方法

所以你的代码会很简单

const got = require("got");

(async () => {
  console.log(await got.get("https://www.skechers.com/en-us/"));
})();

【讨论】:

  • 谢谢,我正在调查。
  • 感谢它运行良好,但我真的需要了解 CORS 和相关的东西。
猜你喜欢
  • 2021-04-10
  • 1970-01-01
  • 2021-04-07
  • 2020-03-29
  • 1970-01-01
  • 1970-01-01
  • 2020-10-15
  • 2022-11-13
  • 2020-04-05
相关资源
最近更新 更多