【问题标题】:request mothod not working for https://arxiv.org pdf files请求方法不适用于 https://arxiv.org pdf 文件
【发布时间】:2017-07-13 06:54:48
【问题描述】:

我正在使用请求方法来获取文件流,它适用于所有 pdf 文件,但是当我尝试获取 https://arxiv.org 网站 pdfs (https://arxiv.org/pdf/1611.10012.pdf) 时它不起作用。

对于https://arxiv.org/ 网站 pdf,它给出 403 fobidden 状态代码,而对于其他网站 pdf 文件,它返回 200 状态代码。

这是我获取其他网站 pdf 的代码

   request('http://uberthings.com/mobile/intro_to_mobile.pdf', function (error, response, body) {
  console.log('error:', error); 
  console.log('statusCode:', response && response.statusCode); 
  console.log('body:', body);
});

//返回200状态码

这是我的 https://arxiv.org 其他网站 pdf 的代码

  request('https://arxiv.org/pdf/1611.10012.pdf', function (error, response, body) {
  console.log('error:', error); 
  console.log('statusCode:', response && response.statusCode); 
  console.log('body:', body);
});

//返回403状态码

知道为什么特定网站 (https://arxiv.org/pdf/1611.10012.pdf) 的请求方法不起作用吗?

【问题讨论】:

    标签: node.js pdf request


    【解决方案1】:

    访问被拒绝 403。 遗憾的是,您的客户没有提供适当的用户代理,因此被排除在外。

    在请求标头中修复此 pass User-Agent

    var options = {
        url: 'https://arxiv.org/pdf/1611.10012.pdf',
        headers: {
            'Referer': 'https://arxiv.org',
            'User-Agent': 'stagefright/1.2 (Linux;Android 5.0)'
        }
    }
    
    request(options, function (error, response, body) {
      console.log('error:', error);
      console.log('statusCode:', response && response.statusCode);
      console.log('body:', body);
    });
    

    用户代理https://gist.github.com/enginnr/ed572cf5c324ad04ff2e的用户代理列表

    【讨论】:

      猜你喜欢
      • 2017-12-23
      • 1970-01-01
      • 2018-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-17
      • 2018-04-08
      相关资源
      最近更新 更多