2 min read

자바스크립트 동원복권 매크로

동원복권, 매크로

1년치인 예치금을 30만원 넣어두고 오토로 돌리고 있다.

코드가 필요하신 분들이 있을거같아 공유한다.

const axios = require('axios');
const qs = require('querystring');
const puppeteer = require("puppeteer")

const dhlotteryBuy646 = async (userId, password) => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();

  // 페이지 이동
  await page.goto('https://dhlottery.co.kr/user.do?method=login');

  // 아이디와 비밀번호 입력
  await page.type('[placeholder="아이디"]', userId);
  await page.type('[placeholder="비밀번호"]', password);

  // 로그인 버튼 클릭 및 네비게이션 대기
  await Promise.all([
    page.waitForNavigation(), // The promise resolves after navigation has finished
    page.keyboard.press('Enter'),
  ]);

  await page.goto('https://ol.dhlottery.co.kr/olotto/game/game645.do');

  // 번호 선택 및 자동 선택 클릭
  await page.click('#num2');

  // 구매할 개수 선택
  await page.select('#amoundApply', '5');

  // 구매하기 클릭
  await page.click('text=확인');
  await page.click('#btnBuy');

  // 구매 확인 대화 상자에서 확인 클릭
  await page.waitForTimeout(2000);
  await page.click('#popupLayerConfirm > div > div.btns > input:nth-child(1)');

  // 브라우저 종료
  await browser.close();

};

module.exports = {
  dhlotteryBuy646
};

만약 도커화시켜서 매크로를 돌리는 분은 game645.do 부분에 click 코드를 추가한다.

await page.goto('https://ol.dhlottery.co.kr/olotto/game/game645.do');
await page.click('#popupLayerAlert > div > div.btns > input');

js 구문에 다음과 같은 코드가 있다. Linux로 들어가는 경우 비정상적인 방법으로 접속되었다는 팝업이 출력한다.

if (navigator.platform && /win16|win32|win64|mac/ig.test(navigator.platform) == false) {
	openLayerAlert('비정상적인 방법으로 접속하였습니다. 정상적인 PC 환경에서 접속하여 주시기 바랍니다.', parentClose);
}