|
package.json 文件
- {
- "dependencies": {
- "cheerio": "^1.0.0-rc.2",
- "node-schedule": "^1.3.0",
- "superagent": "^3.8.3"
- }
- }
复制代码
使用 npm i 安装依赖
app.js,替换成你的用户名密码,运行 node app ,也可以装个 forever 放在后台运行
- const superagent = require('superagent');
- const schedule = require('node-schedule');
- const cheerio = require('cheerio')
- const login = user=>
- new Promise((resolve,reject)=>{
- superagent
- .post('http://www.hostloc.com/member.php?mod=logging&action=login&loginsubmit=yes&infloat=yes&lssubmit=yes&inajax=1')
- .type('form')
- .send(user)
- .set('Host','www.hostloc.com')
- .set('Referer','http://www.hostloc.com/forum.php')
- .set('User-Agent','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3391.0 Safari/537.36')
- .end((err, result)=> {
- if(err){
- reject(err)
- return;
- }
- if(result.text.includes('登录失败')){
- reject(err)
- }else{
- if(result.header['set-cookie']){
- let cookie = result.header['set-cookie'].map(item=>{
- return item.split(';')[0] + '; '
- }).reduce((pre,item)=>{
- return pre + item
- })
- resolve( cookie )
- }
- }
- })
- })
- const visited = (Cookies, uid)=>
- new Promise((resolve,reject)=>{
- superagent
- .get(`http://www.hostloc.com/space-uid-${uid}.html`)
- .set('Host','www.hostloc.com')
- .set('User-Agent','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3391.0 Safari/537.36')
- .set('Cookie',Cookies)
- .end((err, result)=> {
- if(err){
- reject(err)
- return;
- }
- resolve(result.text)
- })
- })
- const getCredit = Cookies=>
- new Promise(function(resolve,reject){
- superagent
- .get('http://www.hostloc.com/forum.php')
- .set('Host','www.hostloc.com')
- .set('User-Agent','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3391.0 Safari/537.36')
- .set('Cookie',Cookies)
- .end((err, result)=> {
- if(err){
- reject(err)
- return;
- }
- let $ = cheerio.load(result.text)
- resolve( $('#extcreditmenu').html().split(': ')[1] )
- })
- })
- const randUid = ()=> Math.floor(Math.random()*(29796-20000)+20000);
- (async () => {
- const user = {
- username:'username',
- password:'password'
- }
-
- async function start(user){
- const cookie = await login(user)
- console.log(`积分:${await getCredit(cookie)}`)
- let uid = randUid()
- let max = uid + 10
- while(uid<max){
- console.log(uid)
- await visited(cookie, uid)
- uid++
- }
- let credit = await getCredit(cookie)
- console.log(`done,积分:${credit}`)
- return credit
- }
- // * * * * * *
- // ┬ ┬ ┬ ┬ ┬ ┬
- // │ │ │ │ │ |
- // │ │ │ │ │ └ day of week (0 - 7) (0 or 7 is Sun)
- // │ │ │ │ └───── month (1 - 12)
- // │ │ │ └────────── day of month (1 - 31)
- // │ │ └─────────────── hour (0 - 23)
- // │ └──────────────────── minute (0 - 59)
- // └───────────────────────── second (0 - 59, OPTIONAL)
- schedule.scheduleJob('* * 8 * * *', function() {
- start(user)
- });
- })();
复制代码 |
|