关于自动签到,之前也有过,感觉写过好多次了,有可能也重复了,不过这次是通过puppeteer来实现的,相对于之前的phantomjs 或 casperjs 或 request 等最起码会更简单些,也不用安装这么多稀奇古怪的东西。
这里安装直接通过npm来安装即可,由于chrominum 比较大,其实可以调过不用下载的。 请参考这里点我-这里.
原理很简单,就是模拟浏览器,然后点啊点啊..就完了,自己写这个实际上就是个熟悉API的,顺便写着玩。
//记录 各类需要自动签到的网站-- 以后会慢慢丰富(有空且无聊的时候就会增加的。)
//京东自动签到,领京豆
async function jdsign(browser,page){
let url = `https://www.jd.com/`
await page.goto(url, {waitUntil: 'networkidle2'});
await page.addScriptTag({url: 'https://code.jquery.com/jquery-3.2.1.min.js'})
console.log(`等待点击登录`)
await Promise.all([
page.waitForNavigation({timeout: 0}),
page.click('a[href="javascript:login();"]')
]);
console.log(`等待点击QQ`)
await Promise.all([
page.waitForNavigation({timeout: 0}),
page.click('#kbCoagent>ul>li:first-child .pdl')
])
console.log(`等待点击帐号授权`)
const frame = page.frames().find(frame=> frame.name()=='ptlogin_iframe');
await Promise.all([
page.waitForNavigation({timeout: 0}),
frame.click('img[uin="我的QQ号码,记得改"]')
]);
//跳转到岭兜页面
await page.goto(`https://vip.jd.com/sign/index`);
await page.goto(`https://home.jd.com/`);
await page.screenshot({path : './jingdou/1.jpg'});
}
//百度知道签到
async function zhidaosign(browser,page){
let url =`https://zhidao.baidu.com/`;
await page.goto(url);
await page.click('#userbar-login')
await page.waitFor('#TANGRAM__PSP_10__footerULoginBtn')
await page.click('#TANGRAM__PSP_10__footerULoginBtn');
await page.type('#TANGRAM__PSP_10__userName','这个是我的帐号',{delay:100});
await page.type('#TANGRAM__PSP_10__password','这里是我的密码',{delay : 200})
await Promise.all([
page.waitForNavigation(),
page.click('#TANGRAM__PSP_10__submit')
]);
await page.click('.go-sign-in');
await page.waitFor('#sign-in-btn')
await page.waitFor(3000);
await page.click('#sign-in-btn')
}
;(async ()=>{
let puppeteer = require('puppeteer');
let args = [
'--no-sandbox',
'--disable-infobars',
// '--window-size=800,600',
'--window-size=1920,1080',
'--lang=zh-CN',
'--disable-dev-shm-usage'
];
const browser = await puppeteer.launch({
headless : false,
defaultViewport : {
// width : 800,height:600
width : 1920,height:1080
},
args : args,
executablePath : 'C:/Users/Administrator/AppData/Local/Google/Chrome SxS/Application/chrome.exe'
// executablePath : 'C:/Users/Administrator/AppData/Local/Google/Chrome/Application/chrome.exe'
});
const page = await browser.newPage();
//启动京东签到
await jdsign(browser,page);
//启动百度知道签到
await zhidaosign(browser,page);
await browser.close();
process.exit(0);
})();
转载请注明出处: https://chrunlee.cn/article/puppeteer-login-record.html