Javascript Node.js可以';不要向zomato.com提出请求

Javascript Node.js可以';不要向zomato.com提出请求,javascript,node.js,npm,http-get,Javascript,Node.js,Npm,Http Get,我想向发出请求,但没有响应,我可以连接其他任何地方,但不能连接到zomato。我每次都会收到超时错误。我试图设置用户代理,但没有成功。我使用节点6.6.0和请求2.79.0。有什么想法吗 var request = require('request'); var cheerio = require('cheerio'); var fs = require('fs'); var http = require('http'); request.get({ url: 'http://zoma

我想向发出请求,但没有响应,我可以连接其他任何地方,但不能连接到zomato。我每次都会收到超时错误。我试图设置用户代理,但没有成功。我使用节点6.6.0和请求2.79.0。有什么想法吗

var request = require('request');
var cheerio = require('cheerio');
var fs = require('fs');
var http = require('http');

request.get({
    url: 'http://zomato.com/',
    headers: {
        'user-ggent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36'
      }
}, function(error, response, body) {
    if(error) {
        console.log("Error: " + error);
        return;
    }
    else {
        console.log("Status code: " + response.statusCode);
  }
});


更新:
我注意到:

curl -X GET "https://zomato.com/"

返回301重定向

如果查看curl zomato.com-v的输出,您可以看到我们正在被重定向:

HTTP/1.1 301 Moved Permanently
HTTP/1.1 301 Moved Permanently 
因此,我们需要补充:

 followAllRedirects: true,
在这里:

 request.get({

     url: 'http://zamato.com/',
     followAllRedirects: true,
     headers: {
           'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36'
      } 

我在尝试做一些类似的网站时遇到了一些问题。尝试而不是请求

我没有测试zomato,但这里有我用于另一个网站的代码:

var website = new Nightmare()
.useragent("Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36")
.goto('http://zomatoorwhateverwebsite.com/')
.evaluate(function(){
    return document.documentElement.innerHTML;
})
.end()
.then(function(html) {
   var $ = cheerio.load(html);

   //Do what you need here
})

我希望这有帮助。有时您需要添加一些wait()检查文档中是否有额外的函数

我现在能够让程序以“200”响应,您是否仍然有问题?Html参数每次都为空。我很确定这是他们的一些安全把戏,不刮他们的网站,但我不知道它是如何工作的。顺便说一句,我发现没有任何额外标题的邮递员效果很好。我和tripadvisor也有同样的问题。。。我非常确定zomato使用API有时很难废弃使用API的网站,因为HTML是,例如,如果他们使用angular,
  • {{line.text}}
,但是如果没有对API的调用,那就没有任何意义。也许可以尝试检查dev工具上的网络调用,有时您可以弄清楚如何调用api,然后很容易获取数据。祝你好运