Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 1 addition & 17 deletions src/aws/lambda/CrawlingService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -130,23 +130,7 @@ export class CrawlingService {
headless: true,
executablePath: await chromiumBinary.executablePath(),
args: [
...chromiumBinary.args,
'--no-sandbox',
'--disable-dev-shm-usage',
'--disable-gpu',
'--disable-features=VizDisplayCompositor',
'--disable-background-timer-throttling',
'--disable-backgrounding-occluded-windows',
'--disable-renderer-backgrounding',
'--disable-web-security',
'--single-process',
'--disable-setuid-sandbox',
'--no-zygote',
'--disable-accelerated-2d-canvas',
'--no-first-run',
'--no-default-browser-check',
'--disable-extensions',
'--disable-plugins',
...chromiumBinary.args
],
});
console.log('Browser initialized successfully');
Expand Down
2 changes: 2 additions & 0 deletions src/entity/job/JobRegistry.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import { 서울시사회복지사협회 } from './implement/seoul/서울시사
import { 거모종합사회복지관 } from './implement/gyeonggi/siheung/거모종합사회복지관';
import { 고강종합사회복지관 } from './implement/gyeonggi/bucheon/고강종합사회복지관';
import { 고산종합사회복지관 } from './implement/gyeonggi/uijeongbu/고산종합사회복지관';
import { 고양시원당종합사회복지관 } from './implement/gyeonggi/goyang/고양시원당종합사회복지관';

/**
* 모든 크롤링 Job들을 등록하고 관리하는 Registry 클래스
Expand All @@ -45,6 +46,7 @@ export class JobRegistry {
new 거모종합사회복지관(),
new 고강종합사회복지관(),
new 고산종합사회복지관(),
new 고양시원당종합사회복지관(),
];

static getAllJobs(): Job[] {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import { Locator } from "playwright-core";
import { Category } from "../../../../Category";
import { Optimize, Optimizer } from "../../../../Optimize";
import { SimpleTemplateStep } from "../../../../step/SimpleTemplateStep";
import { AbstractJob } from "../../../AbstractJob";
import { parseKoreaDate } from "../../../../../utils/DateUtils";

export class 고양시원당종합사회복지관 extends AbstractJob {
constructor() {
super('고양시원당종합사회복지관', 'https://wdss.or.kr', [new 공지사항()])
}

registerOptimizer(optimizer: Optimizer) {
optimizer.register(Optimize.JS);
}
}

class 공지사항 extends SimpleTemplateStep {
constructor() {
super(
'https://wdss.or.kr/wondang/sub4_1.do',
'.board-01.board-list tbody tr:not(:first-child)',
Category.NOTICE
);
}

async select(card: Locator, baseUrl: string): Promise<object> {
const titleElement = card.locator('.board-title a');
const link = await titleElement.getAttribute('href');
const title = (await titleElement.textContent()).trim();

const dateStr = (await card.locator('td:nth-child(4)').textContent()).trim();
const createdAt = parseKoreaDate(dateStr, '-');

return {
title: title,
createdAt: createdAt,
link: link
}
}
}