Files
ranking/fetch-articles.ts
2025-11-12 02:58:36 +09:00

53 lines
1.5 KiB
TypeScript

import { NaverRealEstate } from "./src/services/naver.service";
import { realtorIds } from "./config";
// 사용 예제
async function main() {
for (const realtorId of realtorIds) {
const naver = new NaverRealEstate({
realtorId: realtorId,
});
try {
// 2. DB에서 Seed 불러오기 시도
console.log("Seed 불러오는 중...");
let seed = await naver.fetchSeed();
console.log("Seed:", seed);
// await naver.resetActiveStatus();
// 3. 등록된 매물(Article) 목록 가져오기 (자동으로 DB에 저장됨)
console.log("\n매물 목록 가져오는 중...");
// const articles = await naver.getArticlesAndSave();
// console.log(`\n총 ${articles.length}개의 매물 발견`);
// 삭제된 매물 삭제
// await naver.deleteUnactiveArticles();
// 삭제되지 않은 매물 가져옴
let activeArticles = await naver.getActiveArticles(realtorId);
activeArticles = activeArticles.filter(
(article) => article.brokerName === null
);
console.log(`\n총 ${activeArticles.length}개의 매물 발견`);
let cookie = await naver.getApiCookie();
for (let i = 0; i < activeArticles.length; i += 30) {
const batch = activeArticles.slice(i, i + 30);
await Promise.all(
batch.map(async (article) => {
await naver.updateBrokerInfo(article.articleNumber, cookie);
})
);
}
} catch (error) {
console.error("오류 발생:", error);
}
}
}
// 실행
main();