Javascript Node.js抓取ASU课程

Javascript Node.js抓取ASU课程,javascript,node.js,screen-scraping,zombie.js,Javascript,Node.js,Screen Scraping,Zombie.js,我是Node.js的新手,如果我不知道自己在说什么,请提前道歉 我想从ASU的课程目录中删掉一些课程(https://webapp4.asu.edu/catalog/)并且多次尝试使用Zombie、Node.IO和HTTPS api。在这两种情况下,我都遇到了重定向循环 我想知道是不是因为我没有正确设置标题 下面是我使用的示例代码(不是Zombie/Node.IO): 我只是想澄清一下,一般来说,我在使用Node.js时不会遇到麻烦。更具体地说,ASU的课程目录给我带来了麻烦 谢谢你们能给我的任

我是Node.js的新手,如果我不知道自己在说什么,请提前道歉

我想从ASU的课程目录中删掉一些课程(https://webapp4.asu.edu/catalog/)并且多次尝试使用Zombie、Node.IO和HTTPS api。在这两种情况下,我都遇到了重定向循环

我想知道是不是因为我没有正确设置标题

下面是我使用的示例代码(不是Zombie/Node.IO):

我只是想澄清一下,一般来说,我在使用Node.js时不会遇到麻烦。更具体地说,ASU的课程目录给我带来了麻烦

谢谢你们能给我的任何想法,谢谢

更新:如果我使用从Chrome/FF获得的JSESSIONID创建cookie,则我的请求成功通过。我有没有办法请求/创建JSSessionID?

Id强烈建议与一起使用。我已经用过很多次了,因为它使它非常简单

以下是jsdom自述文件中的示例:

// Count all of the links from the nodejs build page
var jsdom = require("jsdom");

jsdom.env("http://nodejs.org/dist/", [
  'http://code.jquery.com/jquery-1.5.min.js'
],
function(errors, window) {
  console.log("there have been", window.$("a").length, "nodejs releases!");
});

希望这能有所帮助,jsdom让我们可以很容易地一起进行抓取实验(至少对我来说)。

看起来服务器设置了JSESSIONID cookie,然后重定向了,所以如果您想抓取cookie,需要告诉node.js不要遵循重定向。我不知道如何使用
http
https
软件包实现这一点,但您可以通过npm:获得另一个软件包,它允许您这样做。下面是一个应该让您开始学习的示例:

var request = require("request");

var options = {
  url: "https://webapp4.asu.edu/catalog/",
  followredirect: false,
}

request.get(options, function(error, response, body) {
  console.log(response.headers['set-cookie']);
});
输出应如下所示:

[ 'JSESSIONID=B43CC3BB09FFCDE07AE6B3B702717431.catalog1; Path=/catalog; Secure' ]

谢谢正是这些重定向让我陷入了困境。下面是一篇关于如何使用Node.js刮取网页的完整文章:
[ 'JSESSIONID=B43CC3BB09FFCDE07AE6B3B702717431.catalog1; Path=/catalog; Secure' ]