请求mothod不适用于https://arxiv.org pdf文件

时间:2017-07-13 06:54:48

标签: node.js pdf request

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

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

以下是我获取其他网站pdfs的代码

   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其他网站pdfs的代码

  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)的请求方法不起作用?

1 个答案:

答案 0 :(得分:2)

enter image description here

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

修复此请求标头中的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

的用户代理列表