原理:首先登录获取cookie,之后携带cookie请求首页。
下面是源码:
const CryptoJS = require('crypto-jS');
const request = require('request');
const cheerio = require('cheerio');
let config = {
loginUrl: 'https://www.oschina.net/action/user/hash_login?from=', // 登录地址
homeUrl: 'https://www.oschina.net/', // 首页
username: 【你的账号】,
password: 【你的密码】
}
loginOschina(config)
/**
* @desc 模拟登录开源中国
*/
function loginOschina() {
let option = {
url: config.loginUrl,
method: 'POST',
form: {
email: config.username,
pwd: CryptoJS.SHA1(config.password).toString(),
verifyCode: '',
ave_login: '1'
}
}
request(option, (err, req, res) => {
// console.log(req.headers['set-cookie']); // 获取cookie !!!重要
const request = require('request');
let option = {
url: config.homeUrl,
method: 'GET',
headers: {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36',
'Cookie': req.headers['set-cookie'],
}
}
request(option, (err, req, res) => {
$ = cheerio.load(res);
let name = $('.name').eq(0).text()
if (name) {
console.log('登录成功,昵称为:', name)
}
})
})
}