1

我正在使用 NodeJS 创建一个小型应用程序来访问我的 Intranet 上的打印机 Web 界面。我使用require模块连接和cheerio模块解析/显示数据。

不幸的是,其中一台打印机使用登录表单(与 html 标头身份验证相对)。我正在使用该request.post函数并发送正确的参数,如果这成功了,那么我会在 DOM 中找到我需要的信息cheerio.load(new url here)- 但是这并不成功,我被重定向到“会话超时”页面。

我需要设法使会话与初始 POST 请求保持一致,然后在使用我需要的信息请求新页面时重新使用它。

这可能吗?

4

1 回答 1

1

You need to make sure you are storing the session cookie the printer will send back after successful login and including them in all subsequent requests. You can use the request library with the {jar: true} option to do this. Make sure you use request to submit the login form, then request to load the next page of HTML, and then pass that HTML to cheerio as opposed to having cheerio load the URL directly as cheerio's request won't include the necessary session cookie.

于 2013-12-10T15:34:34.590 回答