| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- 코딩독학
- github
- claude활용
- 퍼블릭도메인
- 사주앱개발
- 타로앱개발
- Netlify
- GitHub Pages
- 카드애니메이션
- typescript
- meslolgs nf
- 바이브코딩
- ai웹사이트
- 무료웹사이트
- 무료서버
- Chatgpt활용
- AI개발
- docs-first
- React
- 다크테마UI
- 무료호스팅
- 천간지지오행
- Cloudflare Pages
- AI협업개발
- 일렉트론
- claude ai
- 웹앱개발
- 타로카드
- 웹사이트만들기
- 사주프로그램
Archives
- Today
- Total
dog paw / development
로또 (lotto) 데이터 수집/분석 - node.js 본문

PHP버젼과 파이선버젼으로 만든것도 있었는데 소스가 어디갔는지...
소스는 github 에서 다운로드 가능합니다.
https://github.com/goldtagworks/node-lotto.git
GitHub - goldtagworks/node-lotto
Contribute to goldtagworks/node-lotto development by creating an account on GitHub.
github.com
const util = require('util');
const https = require('https');
const axios = require('axios');
const mysql = require('mysql');
class Tasker {
constructor() {
this.pool = null;
}
async initialize() {
this.pool = await mysql.createPool({
host: '127.0.0.1'
, port: 3306
, user: 'root'
, password: ''
, database: 'lotto'
});
this.pool.query = await util.promisify(this.pool.query);
}
async finalize() {
await this.pool.end();
}
async getLotto(drwNo = 1) {
let url = 'https://www.nlotto.co.kr/common.do?method=getLottoNumber&drwNo=' + drwNo;
return await axios.get(url, {
headers: { 'Content-Type': 'application/json' },
responseType: 'json',
httpsAgent: new https.Agent({ rejectUnauthorized: false })
});
}
async loadHistory() {
let result = 1;
try {
let sql = '';
sql += 'SELECT * FROM history ORDER BY drwNo desc LIMIT 1';
let rows = await this.pool.query(sql);
if (rows.length != 0) {
result = rows[0].drwNo + 1;
}
} catch (err) {
throw new Error(err);
}
return result;
}
async saveHistory(data) {
try {
let sql = '';
sql += 'INSERT INTO history (drwNo, drwNoDate, drwtNo1, drwtNo2, drwtNo3, drwtNo4, drwtNo5, drwtNo6, bnusNo, firstWinamnt, firstPrzwnerCo, firstAccumamnt, totSellamnt) ';
sql += 'VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)';
let params = [data.drwNo, data.drwNoDate, data.drwtNo1, data.drwtNo2, data.drwtNo3, data.drwtNo4, data.drwtNo5, data.drwtNo6, data.bnusNo, data.firstWinamnt, data.firstPrzwnerCo, data.firstAccumamnt, data.totSellamnt];
await this.pool.query(sql, params);
} catch (err) {
throw new Error(err);
}
}
async main() {
await this.initialize();
let drwNo = await this.loadHistory();
let response = await this.getLotto(drwNo);
if (response.status == 200 && response.data.returnValue == 'success') {
await this.saveHistory(response.data);
}
await this.finalize();
}
}
let tasker = new Tasker();
tasker.main();'개발 > node' 카테고리의 다른 글
| node-fetch / got 네트워크 이슈 리포트 (TLS & Proxy 관점) (0) | 2025.04.02 |
|---|---|
| 자바스크립트를 처음 배운게... (0) | 2024.10.13 |