Javascript Node.js请求未在特定网站上返回HTML

Javascript Node.js请求未在特定网站上返回HTML,javascript,node.js,web,web-scraping,Javascript,Node.js,Web,Web Scraping,我正试图为纽约市的一个建筑数据库编写一个网页刮板,并试图获得实际网站的html。无论出于什么原因,当我把我试图刮的网站的url,我的程序没有做任何事情。每当我把几乎任何其他网站的url,我实际上得到了我要求的html。这是不是因为我想刮一个政府网站 var request = require("request"); request( { uri: "http://a810-bisweb.nyc.gov/bisweb/JobsQueryByNumberServlet?requestid=

我正试图为纽约市的一个建筑数据库编写一个网页刮板,并试图获得实际网站的html。无论出于什么原因,当我把我试图刮的网站的url,我的程序没有做任何事情。每当我把几乎任何其他网站的url,我实际上得到了我要求的html。这是不是因为我想刮一个政府网站

var request = require("request");

request(
    { uri: "http://a810-bisweb.nyc.gov/bisweb/JobsQueryByNumberServlet?requestid=3&passjobnumber=123768556&passdocnumber=01" },
    function(error, response, body) {
        console.log(body);
        console.log("hello")
    }
);

我希望在控制台中以字符串的形式接收html,但是我什么也没有得到。“你好”甚至没有打印出来。但是,当我尝试任何其他站点时,我会得到实际的html字符串。

您尝试获取的url拒绝访问

对于请求,我更喜欢基于承诺的api,因此下面的代码

var request = require("request");
request
  .get("http://a810-bisweb.nyc.gov/bisweb/JobsQueryByNumberServlet?requestid=3&passjobnumber=123768556&passdocnumber=01")
  .on('response', function(response) {
    console.log('Hello');
    console.log(response.statusCode);
    console.log(response.headers['content-type']);
  })
  .on('error', function(error){
    console.log(error);
  })
将打印出来

Hello
403
text/html

我假设你得到403的原因是网站可能设置了cookie或者有一些会话状态,你直接进入你想要的url,而不是先点击首页。如果我直接转到url,我在浏览器中也会得到403,但是如果我先转到首页,然后再转到url,我会得到页面

您试图获取的url拒绝访问

对于请求,我更喜欢基于承诺的api,因此下面的代码

var request = require("request");
request
  .get("http://a810-bisweb.nyc.gov/bisweb/JobsQueryByNumberServlet?requestid=3&passjobnumber=123768556&passdocnumber=01")
  .on('response', function(response) {
    console.log('Hello');
    console.log(response.statusCode);
    console.log(response.headers['content-type']);
  })
  .on('error', function(error){
    console.log(error);
  })
将打印出来

Hello
403
text/html

我假设你得到403的原因是网站可能设置了cookie或者有一些会话状态,你直接进入你想要的url,而不是先点击首页。如果我直接转到url,我在浏览器中也会得到403,但是如果我先转到首页,然后再转到url,我会得到页面

对于任何想知道的人,我能够绕过网站使用tampermonkey设置的限制。无论如何,我只需要访问DOM,所以tampermonkey让我在进入站点后运行一个脚本

对于任何想知道的人,我能够绕过站点使用tampermonkey设置的限制。我只是需要访问DOM,所以我一进入网站就让我运行一个脚本

如果你总是检查错误,你的生活会更轻松。我没有收到任何错误,我的控制台基本上就是frozeLife如果你总是检查错误,你会更轻松。我没有收到任何错误,我的控制台基本上就是为了帮助我。是否有任何方法可以在节点中绕过此操作。我可以模拟这个会话状态吗?你可以在这里看到一些示例,它们是post但适用的,还可以设置请求头,说你来自首页。也可以尝试一下,看看你是否可以通过设置请求头来做到这一点,比如说你来自网站的首页。这显示了如何使用请求设置标题,以便设置referer标题['referer']=”“非常感谢您的帮助。是否有任何方法可以在节点中绕过此操作。我可以模拟这个会话状态吗?你可以在这里看到一些示例,它们是post但适用的,还可以设置请求头,说你来自首页。也可以尝试一下,看看你是否可以通过设置请求头来做到这一点,比如说你来自网站的首页。这显示了如何使用请求设置标头,以便设置referer标头['referer']=“”