首先得申請一個微信公衆號,而後用瀏覽器登陸以後,來到關鍵詞回覆頁面。利用cookie獲取工具導出當前的cookie。javascript
點擊導出當前domain的全部cookiehtml
導出來的cookie是一個數組,直接複製到一個地方備用便可java
使用全局代理,利用npm下載puppeteernode
npm i puppeteer@3.0.0
因爲下載puppeteer的時候會下載chromium,因此須要全局代理,不下載chromium也能夠直接下載puppeteer-corenpm
npm i puppeteer-core
let browser = await puppeteer.launch(launchOptions); let page = await browser.newPage(); for (let i = 0; i < cookies.length; i++) { await page.setCookie(cookies[i]); } await page.goto(url); await page.waitForSelector('html'); await page.content(); let title = await page.title();
await page.$$eval('.weui-desktop-layout__extra', clickAddButton); async function clickAddButton(nodes) { let cnt = 0; for (let node of nodes) { cnt++; if (cnt === 1) continue; let treeWalker = document.createTreeWalker( node, NodeFilter.SHOW_ELEMENT, { acceptNode: function (node2) { return NodeFilter.FILTER_ACCEPT; } }, false ); while (treeWalker.nextNode()) { let current = treeWalker.currentNode; if (current.tagName.toLowerCase() === 'button' && current.innerHTML === '添加回復') { await current.click(); return true; } } } return false; }
await page.type('.weui-desktop-form__input', val.group + '', {delay: 100}); await page.waitFor(1000); await page.type('[placeholder=輸入關鍵詞]', val.title.split('-')[0] + '', {delay: 100}); await page.waitFor(1000);
await page.$$eval('.weui-desktop-msg-sender__tab_text', addTxt); async function addTxt(nodes) { for (let node of nodes) { await node.click(); return true; } return false; }
await page.focus('.edit_area'); await page.keyboard.type('aaa:' + val.title.split('-')[0].trim(), {delay: 100}); await page.keyboard.press('Enter'); await page.keyboard.type('bbb:' + val.title.split('-')[1].trim(), {delay: 100}); await page.keyboard.press('Enter'); await page.keyboard.type('ccc:' + val.url, {delay: 100}); await page.keyboard.press('Enter'); await page.keyboard.type('ddd:' + val.code, {delay: 100}); await page.keyboard.press('Enter'); await page.keyboard.type('eee:' + val.id, {delay: 100});
await page.waitForXPath('//*[@id="app"]/div[3]/div[2]/div[2]/form/div[3]/div/div/div[3]/div[1]/div/div[3]/button[1]'); let elHandles = await page.$x('//*[@id="app"]/div[3]/div[2]/div[2]/form/div[3]/div/div/div[3]/div[1]/div/div[3]/button[1]'); for (let handle of elHandles) { handle.click({delay: 100}); }
await page.waitForXPath('//*[@id="app"]/div[3]/div[2]/div[2]/div/button[1]'); let elHandle1s = await page.$x('//*[@id="app"]/div[3]/div[2]/div[2]/div/button[1]'); for (let handle of elHandle1s) { handle.click({delay: 100}); }
就搞定了數組
炒雞辣雞原創文章,轉載請註明來源