const request = require('request');
const querystring = require('querystring');
const formData = {
username: 'your_username',
password: 'your_password',
// 其他需要提交的表单数据
};
const options = {
url: 'https://example.com/signin',
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
form: formData
};
request(options, (error, response, body) => {
if (error) {
console.error(error);
} else {
console.log(body);
}
});
有的时候,我们通过登录把cookie存储起来
当然可以使用 cookie 实现自动登录,下面是一个使用 Node.js 实现自动登录的示例代码,使用了 `request` 模块发送 HTTP 请求,可以将 cookie 保存在本地文件中,以便下次使用:
```javascript
const request = require('request');
const fs = require('fs');
const querystring = require('querystring');
// 登录页面 URL
const loginUrl = 'https://example.com/login';
// 登录表单数据
const formData = {
username: 'your_username',
password: 'your_password',
};
// 读取保存的 cookie
let cookie = '';
try {
cookie = fs.readFileSync('cookie.txt', 'utf-8');
} catch (err) {
console.error('读取 cookie 失败', err);
}
// 如果没有保存的 cookie,则进行登录操作
if (!cookie) {
// 发送登录请求
request.post({
url: loginUrl,
form: formData,
}, (err, response, body) => {
if (err) {
console.error('登录失败', err);
return;
}
// 保存 cookie
const headers = response.headers;
if (headers['set-cookie']) {
cookie = headers['set-cookie'][0];
fs.writeFileSync('cookie.txt', cookie);
console.log('保存 cookie 成功', cookie);
}
// 打印登录结果
console.log('登录成功', body);
});
} else {
// 如果有保存的 cookie,则直接使用 cookie 访问需要登录才能访问的页面
request.get({
url: 'https://example.com/protected_page',
headers: {
Cookie: cookie,
},
}, (err, response, body) => {
if (err) {
console.error('访问失败', err);
return;
}
// 打印访问结果
console.log('访问成功', body);
});
}
```
在这个示例代码中,我们首先尝试从本地文件中读取保存的 cookie,如果有保存的 cookie,则直接使用 cookie 访问需要登录才能访问的页面;如果没有保存的 cookie,则发送登录请求,登录成功后保存 cookie,并使用 cookie 访问需要登录才能访问的页面。
综合以上,还是用下面的足够使用 。2合一更好。
const request = require('request');
// 登录请求
const loginOptions = {
url: 'https://example.com/login',
form: {
username: 'your_username',
password: 'your_password'
}
};
request.post(loginOptions, (loginError, loginResponse, loginBody) => {
if (loginError) {
console.error(loginError);
return;
}
// 提交表单请求
const submitOptions = {
url: 'https://example.com/submit',
headers: {
Cookie: loginResponse.headers['set-cookie'] // 将登录响应中的 Set-Cookie 头部设置到请求头中
},
form: {
field1: 'value1',
field2: 'value2'
}
};
request.post(submitOptions, (submitError, submitResponse, submitBody) => {
if (submitError) {
console.error(submitError);
return;
}
console.log(submitBody);
});
});