pal-crawl 2.0.4 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.freebuff/project-id +1 -0
- package/README.md +35 -1
- package/dist/config.d.ts +5 -1
- package/dist/config.js +5 -0
- package/dist/config.js.map +1 -1
- package/dist/http-client.d.ts +6 -0
- package/dist/http-client.js +25 -5
- package/dist/http-client.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/likms.d.ts +45 -0
- package/dist/likms.js +151 -0
- package/dist/likms.js.map +1 -0
- package/dist/likms.test.d.ts +1 -0
- package/dist/likms.test.js +313 -0
- package/dist/likms.test.js.map +1 -0
- package/dist/pal.d.ts +18 -1
- package/dist/pal.js +74 -9
- package/dist/pal.js.map +1 -1
- package/dist/pal.test.js +17 -2
- package/dist/pal.test.js.map +1 -1
- package/package.json +10 -10
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const pal_1 = require("./pal");
|
|
4
|
+
const likms_1 = require("./likms");
|
|
5
|
+
// ─── HTML Fixtures (실제 캡처 구조를 축약) ─────────────────────────────────────
|
|
6
|
+
const LIKMS_DETAIL_PAGE_HTML = `
|
|
7
|
+
<div class="content" id="content">
|
|
8
|
+
<div class="page_title">
|
|
9
|
+
<h3 class="detailh3">[2221798] 유아교육법 일부개정법률안(김문수의원 등 12인)</h3>
|
|
10
|
+
</div>
|
|
11
|
+
<div class="content">
|
|
12
|
+
<form id="form" name="form">
|
|
13
|
+
<input type="hidden" id="billId" name="billId" value="PRC_G2G6E0D9E2Z3A1Y7Z5X1Y0W4E9E6D5">
|
|
14
|
+
<input type="hidden" id="billNo" name="billNo" value="2221798">
|
|
15
|
+
<input type="hidden" id="billKindCd" name="billKindCd" value="BKC_0004">
|
|
16
|
+
<input type="hidden" id="currCmtName" name="currCmtName" value="위원회 심사">
|
|
17
|
+
<input type="hidden" id="reexamYn" name="reexamYn" value="N">
|
|
18
|
+
<input type="hidden" id="mainUpdateBillYn" name="mainUpdateBillYn" value="N">
|
|
19
|
+
<input type="hidden" id="billGbnCd" name="billGbnCd" value="">
|
|
20
|
+
<input type="hidden" id="tmprAnYn" name="tmprAnYn" value="N">
|
|
21
|
+
<input type="hidden" id="headMemo" name="headMemo" value="Y">
|
|
22
|
+
<input type="hidden" id="headMemoInfo" name="headMemoInfo" value="비용추계요구서 제출됨.">
|
|
23
|
+
<input type="hidden" id="withdrawCnt" name="withdrawCnt" value="0">
|
|
24
|
+
<input type="hidden" id="intrsBillCnt" name="intrsBillCnt" value="0">
|
|
25
|
+
<input type="hidden" id="stageMemo" name="stageMemo" value="N"/>
|
|
26
|
+
</form>
|
|
27
|
+
</div>
|
|
28
|
+
</div>
|
|
29
|
+
`;
|
|
30
|
+
const LIKMS_BILL_INFO_FRAGMENT_HTML = `
|
|
31
|
+
<div id="tab_billInfo_sect">
|
|
32
|
+
<div class="container bill_info" id="container" style="height: auto;">
|
|
33
|
+
<form id="billInfoForm">
|
|
34
|
+
<div class="bill_info_div div_on" id="stage_list">
|
|
35
|
+
<div class="theme_title_wrap"><h3>심사진행단계</h3></div>
|
|
36
|
+
</div>
|
|
37
|
+
<div id="rcp_list" class="theme_area bill_info_div">
|
|
38
|
+
<div class="theme_list">
|
|
39
|
+
<h3>접수정보</h3>
|
|
40
|
+
<div>
|
|
41
|
+
<h4>의안접수정보</h4>
|
|
42
|
+
<table class="align_center">
|
|
43
|
+
<tbody id="insc-rcp-row">
|
|
44
|
+
<tr>
|
|
45
|
+
<td class="billNo"><i>의안번호</i><span>2221798</span></td>
|
|
46
|
+
<td class="proposeDt"><i>제안일자</i><span>2026-10-06</span></td>
|
|
47
|
+
</tr>
|
|
48
|
+
</tbody>
|
|
49
|
+
</table>
|
|
50
|
+
</div>
|
|
51
|
+
</div>
|
|
52
|
+
<div class="theme_list" id="prntsummary-sect">
|
|
53
|
+
<div>
|
|
54
|
+
<h4>제안이유 및 주요내용</h4>
|
|
55
|
+
<pre id="prntSummary" class="theme_list_summary" style="height: 130px;">
|
|
56
|
+
제안이유 및 주요내용
|
|
57
|
+
|
|
58
|
+
현행 「유아교육법」은 원장 등 교원의 유아생활지도에 관한 근거를 두고 있으며, 정당한 유아생활지도에 대해서는 「아동복지법」상 신체적 학대행위로 보지 아니하도록 규정하고 있음.
|
|
59
|
+
그런데 정서적 학대 및 방임의 개념이 포괄적으로 규정되어 있어 유치원에서 이루어지는 정당한 교육활동이나 생활지도까지 아동학대로 신고ㆍ조사되는 등 교육활동이 위축되고 있다는 지적이 있음.
|
|
60
|
+
이에 「아동복지법」 제17조제2항에 따라 원장과 교원이 교육활동 과정에서 하여서는 아니 되는 행위를 구체적으로 규정하여 정당한 교육활동을 보장하고 유아를 보호하려는 것임(안 제21조의3제4항 신설).
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
참고사항
|
|
64
|
+
|
|
65
|
+
이 법률안은 김문수의원이 대표발의한 「아동복지법 일부개정법률안」(의안번호 제21797호)의 의결을 전제로 하는 것이므로 같은 법률안이 의결되지 아니하거나 수정의결되는 경우에는 이에 맞추어 조정되어야 할 것임.</pre>
|
|
66
|
+
</div>
|
|
67
|
+
<div class="member_list_more">
|
|
68
|
+
<a href="javascript:;" id="btnPrntSummaryMore" class="closed">+더보기</a>
|
|
69
|
+
</div>
|
|
70
|
+
</div>
|
|
71
|
+
</div>
|
|
72
|
+
</form>
|
|
73
|
+
</div>
|
|
74
|
+
</div>
|
|
75
|
+
`;
|
|
76
|
+
const LIKMS_BILL_INFO_FRAGMENT_NO_REASON_HTML = `
|
|
77
|
+
<div id="tab_billInfo_sect">
|
|
78
|
+
<div id="rcp_list" class="theme_area bill_info_div">
|
|
79
|
+
<div class="theme_list">
|
|
80
|
+
<h3>접수정보</h3>
|
|
81
|
+
</div>
|
|
82
|
+
</div>
|
|
83
|
+
</div>
|
|
84
|
+
`;
|
|
85
|
+
const PAL_CONTENT_HTML_EMPTY_REASON = `
|
|
86
|
+
<div class="card-wrap">
|
|
87
|
+
<div class="item">
|
|
88
|
+
<h4>제안이유 및 주요내용</h4>
|
|
89
|
+
<div class="desc">
|
|
90
|
+
|
|
91
|
+
</div>
|
|
92
|
+
</div>
|
|
93
|
+
<div class="item">
|
|
94
|
+
<h4>의견제출 방법</h4>
|
|
95
|
+
<div class="desc">
|
|
96
|
+
서울시 영등포구 의사당대로 1(여의도동) 교육위원회
|
|
97
|
+
</div>
|
|
98
|
+
</div>
|
|
99
|
+
</div>
|
|
100
|
+
`;
|
|
101
|
+
const PAL_CONTENT_HTML_WITH_REASON = `
|
|
102
|
+
<div class="card-wrap">
|
|
103
|
+
<div class="item">
|
|
104
|
+
<h4>제안이유 및 주요내용</h4>
|
|
105
|
+
<div class="desc">
|
|
106
|
+
현행법은 과태료 처분 기준이 없어 문제라는 지적이 있음.
|
|
107
|
+
이에 과태료 부과 기준을 신설하려는 것임.
|
|
108
|
+
</div>
|
|
109
|
+
</div>
|
|
110
|
+
</div>
|
|
111
|
+
`;
|
|
112
|
+
const EXPECTED_LIKMS_REASON = [
|
|
113
|
+
'현행 「유아교육법」은 원장 등 교원의 유아생활지도에 관한 근거를 두고 있으며, 정당한 유아생활지도에 대해서는 「아동복지법」상 신체적 학대행위로 보지 아니하도록 규정하고 있음.',
|
|
114
|
+
'그런데 정서적 학대 및 방임의 개념이 포괄적으로 규정되어 있어 유치원에서 이루어지는 정당한 교육활동이나 생활지도까지 아동학대로 신고ㆍ조사되는 등 교육활동이 위축되고 있다는 지적이 있음.',
|
|
115
|
+
'이에 「아동복지법」 제17조제2항에 따라 원장과 교원이 교육활동 과정에서 하여서는 아니 되는 행위를 구체적으로 규정하여 정당한 교육활동을 보장하고 유아를 보호하려는 것임(안 제21조의3제4항 신설).',
|
|
116
|
+
'참고사항',
|
|
117
|
+
'이 법률안은 김문수의원이 대표발의한 「아동복지법 일부개정법률안」(의안번호 제21797호)의 의결을 전제로 하는 것이므로 같은 법률안이 의결되지 아니하거나 수정의결되는 경우에는 이에 맞추어 조정되어야 할 것임.',
|
|
118
|
+
].join('\n');
|
|
119
|
+
const TEST_BILL_ID = 'PRC_G2G6E0D9E2Z3A1Y7Z5X1Y0W4E9E6D5';
|
|
120
|
+
const getLikmsHttpClient = (crawler) => crawler.httpClient;
|
|
121
|
+
// ─── LikmsCrawler ─────────────────────────────────────────────────────────────
|
|
122
|
+
describe('LikmsCrawler', () => {
|
|
123
|
+
describe('parseDetailFormParams', () => {
|
|
124
|
+
const crawler = new likms_1.LikmsCrawler();
|
|
125
|
+
test('extracts hidden form params from detail page', () => {
|
|
126
|
+
const params = crawler.parseDetailFormParams(LIKMS_DETAIL_PAGE_HTML);
|
|
127
|
+
expect(params.billId).toBe(TEST_BILL_ID);
|
|
128
|
+
expect(params.billNo).toBe('2221798');
|
|
129
|
+
expect(params.billKindCd).toBe('BKC_0004');
|
|
130
|
+
expect(params.tmprAnYn).toBe('N');
|
|
131
|
+
expect(params.reexamYn).toBe('N');
|
|
132
|
+
expect(params.withdrawCnt).toBe('0');
|
|
133
|
+
});
|
|
134
|
+
test('keeps empty-valued params (rendering condition)', () => {
|
|
135
|
+
const params = crawler.parseDetailFormParams(LIKMS_DETAIL_PAGE_HTML);
|
|
136
|
+
expect(params.billGbnCd).toBe('');
|
|
137
|
+
});
|
|
138
|
+
test('returns empty object when form is absent', () => {
|
|
139
|
+
expect(crawler.parseDetailFormParams('<div>no form</div>')).toEqual({});
|
|
140
|
+
});
|
|
141
|
+
});
|
|
142
|
+
describe('parseProposalReason', () => {
|
|
143
|
+
const crawler = new likms_1.LikmsCrawler();
|
|
144
|
+
test('extracts reason from #prntSummary and strips repeated heading', () => {
|
|
145
|
+
const reason = crawler.parseProposalReason(LIKMS_BILL_INFO_FRAGMENT_HTML);
|
|
146
|
+
expect(reason).toBe(EXPECTED_LIKMS_REASON);
|
|
147
|
+
});
|
|
148
|
+
test('reason does not contain the repeated section heading', () => {
|
|
149
|
+
const reason = crawler.parseProposalReason(LIKMS_BILL_INFO_FRAGMENT_HTML);
|
|
150
|
+
expect(reason).not.toMatch(/^제안이유/);
|
|
151
|
+
expect(reason).not.toContain('의안접수정보');
|
|
152
|
+
});
|
|
153
|
+
test('returns null when fragment has no #prntSummary', () => {
|
|
154
|
+
expect(crawler.parseProposalReason(LIKMS_BILL_INFO_FRAGMENT_NO_REASON_HTML)).toBeNull();
|
|
155
|
+
});
|
|
156
|
+
test('returns null when #prntSummary is empty', () => {
|
|
157
|
+
expect(crawler.parseProposalReason('<pre id="prntSummary"></pre>')).toBe(null);
|
|
158
|
+
});
|
|
159
|
+
test('returns null when #prntSummary contains only the heading', () => {
|
|
160
|
+
expect(crawler.parseProposalReason('<pre id="prntSummary">제안이유 및 주요내용</pre>')).toBeNull();
|
|
161
|
+
});
|
|
162
|
+
test('converts <br> tags to newlines', () => {
|
|
163
|
+
const reason = crawler.parseProposalReason('<pre id="prntSummary">제안이유 및 주요내용\n첫 줄<br>두 줄</pre>');
|
|
164
|
+
expect(reason).toBe('첫 줄\n두 줄');
|
|
165
|
+
});
|
|
166
|
+
});
|
|
167
|
+
describe('getProposalReason', () => {
|
|
168
|
+
const crawler = new likms_1.LikmsCrawler();
|
|
169
|
+
test('fetches detail page then posts fragment endpoint', async () => {
|
|
170
|
+
const httpClient = getLikmsHttpClient(crawler);
|
|
171
|
+
const getSpy = jest
|
|
172
|
+
.spyOn(httpClient, 'get')
|
|
173
|
+
.mockResolvedValue(LIKMS_DETAIL_PAGE_HTML);
|
|
174
|
+
const postSpy = jest
|
|
175
|
+
.spyOn(httpClient, 'post')
|
|
176
|
+
.mockResolvedValue(LIKMS_BILL_INFO_FRAGMENT_HTML);
|
|
177
|
+
const reason = await crawler.getProposalReason(` ${TEST_BILL_ID} `);
|
|
178
|
+
expect(reason).toBe(EXPECTED_LIKMS_REASON);
|
|
179
|
+
const getUrl = getSpy.mock.calls[0][0];
|
|
180
|
+
expect(getUrl.toString()).toContain('https://likms.assembly.go.kr/bill/bi/billDetailPage.do');
|
|
181
|
+
expect(getUrl.searchParams.get('billId')).toBe(TEST_BILL_ID);
|
|
182
|
+
expect(getUrl.searchParams.get('currMenuNo')).toBe('2600044');
|
|
183
|
+
const [postUrl, postBody] = postSpy.mock.calls[0];
|
|
184
|
+
expect(postUrl.toString()).toContain('https://likms.assembly.go.kr/bill/bi/bill/detail/billInfo.do');
|
|
185
|
+
expect(postBody).toContain(`billId=${TEST_BILL_ID}`);
|
|
186
|
+
expect(postBody).toContain('billNo=2221798');
|
|
187
|
+
expect(postBody).toContain('billKindCd=BKC_0004');
|
|
188
|
+
getSpy.mockRestore();
|
|
189
|
+
postSpy.mockRestore();
|
|
190
|
+
});
|
|
191
|
+
test('returns null when fragment has no proposal reason', async () => {
|
|
192
|
+
const httpClient = getLikmsHttpClient(crawler);
|
|
193
|
+
const getSpy = jest
|
|
194
|
+
.spyOn(httpClient, 'get')
|
|
195
|
+
.mockResolvedValue(LIKMS_DETAIL_PAGE_HTML);
|
|
196
|
+
const postSpy = jest
|
|
197
|
+
.spyOn(httpClient, 'post')
|
|
198
|
+
.mockResolvedValue(LIKMS_BILL_INFO_FRAGMENT_NO_REASON_HTML);
|
|
199
|
+
await expect(crawler.getProposalReason(TEST_BILL_ID)).resolves.toBeNull();
|
|
200
|
+
getSpy.mockRestore();
|
|
201
|
+
postSpy.mockRestore();
|
|
202
|
+
});
|
|
203
|
+
test('never throws when detail page fetch fails', async () => {
|
|
204
|
+
const httpClient = getLikmsHttpClient(crawler);
|
|
205
|
+
const getSpy = jest
|
|
206
|
+
.spyOn(httpClient, 'get')
|
|
207
|
+
.mockRejectedValue(new Error('network down'));
|
|
208
|
+
await expect(crawler.getProposalReason(TEST_BILL_ID)).resolves.toBeNull();
|
|
209
|
+
getSpy.mockRestore();
|
|
210
|
+
});
|
|
211
|
+
test('never throws when fragment post fails', async () => {
|
|
212
|
+
const httpClient = getLikmsHttpClient(crawler);
|
|
213
|
+
const getSpy = jest
|
|
214
|
+
.spyOn(httpClient, 'get')
|
|
215
|
+
.mockResolvedValue(LIKMS_DETAIL_PAGE_HTML);
|
|
216
|
+
const postSpy = jest
|
|
217
|
+
.spyOn(httpClient, 'post')
|
|
218
|
+
.mockRejectedValue(new Error('Bad Request'));
|
|
219
|
+
await expect(crawler.getProposalReason(TEST_BILL_ID)).resolves.toBeNull();
|
|
220
|
+
getSpy.mockRestore();
|
|
221
|
+
postSpy.mockRestore();
|
|
222
|
+
});
|
|
223
|
+
test('returns null for empty billId without network calls', async () => {
|
|
224
|
+
const httpClient = getLikmsHttpClient(crawler);
|
|
225
|
+
const getSpy = jest.spyOn(httpClient, 'get');
|
|
226
|
+
const postSpy = jest.spyOn(httpClient, 'post');
|
|
227
|
+
await expect(crawler.getProposalReason('')).resolves.toBeNull();
|
|
228
|
+
await expect(crawler.getProposalReason(' ')).resolves.toBeNull();
|
|
229
|
+
expect(getSpy).not.toHaveBeenCalled();
|
|
230
|
+
expect(postSpy).not.toHaveBeenCalled();
|
|
231
|
+
getSpy.mockRestore();
|
|
232
|
+
postSpy.mockRestore();
|
|
233
|
+
});
|
|
234
|
+
});
|
|
235
|
+
describe('getDetailPageHTML', () => {
|
|
236
|
+
const crawler = new likms_1.LikmsCrawler();
|
|
237
|
+
test('throws when billId is empty', async () => {
|
|
238
|
+
await expect(crawler.getDetailPageHTML('')).rejects.toThrow('billId is required');
|
|
239
|
+
});
|
|
240
|
+
});
|
|
241
|
+
});
|
|
242
|
+
// ─── PalCrawl ↔ LikmsCrawler 연계 ─────────────────────────────────────────────
|
|
243
|
+
describe('PalCrawl hydrateProposalReason', () => {
|
|
244
|
+
const setup = (config) => {
|
|
245
|
+
const pal = new pal_1.PalCrawl(config);
|
|
246
|
+
const palHttp = pal
|
|
247
|
+
.httpClient;
|
|
248
|
+
const likms = pal.likms;
|
|
249
|
+
return { pal, palHttp, likmsHttp: likms.httpClient };
|
|
250
|
+
};
|
|
251
|
+
afterEach(() => {
|
|
252
|
+
jest.restoreAllMocks();
|
|
253
|
+
});
|
|
254
|
+
test('fills empty proposalReason from likms (getContent)', async () => {
|
|
255
|
+
const { pal, palHttp, likmsHttp } = setup();
|
|
256
|
+
jest.spyOn(palHttp, 'get').mockResolvedValue(PAL_CONTENT_HTML_EMPTY_REASON);
|
|
257
|
+
jest.spyOn(likmsHttp, 'get').mockResolvedValue(LIKMS_DETAIL_PAGE_HTML);
|
|
258
|
+
jest
|
|
259
|
+
.spyOn(likmsHttp, 'post')
|
|
260
|
+
.mockResolvedValue(LIKMS_BILL_INFO_FRAGMENT_HTML);
|
|
261
|
+
const content = await pal.getContent(TEST_BILL_ID);
|
|
262
|
+
expect(content.proposalReason).toBe(EXPECTED_LIKMS_REASON);
|
|
263
|
+
});
|
|
264
|
+
test('fills empty proposalReason from likms (getDoneContent)', async () => {
|
|
265
|
+
const { pal, palHttp, likmsHttp } = setup();
|
|
266
|
+
jest.spyOn(palHttp, 'get').mockResolvedValue(PAL_CONTENT_HTML_EMPTY_REASON);
|
|
267
|
+
jest.spyOn(likmsHttp, 'get').mockResolvedValue(LIKMS_DETAIL_PAGE_HTML);
|
|
268
|
+
jest
|
|
269
|
+
.spyOn(likmsHttp, 'post')
|
|
270
|
+
.mockResolvedValue(LIKMS_BILL_INFO_FRAGMENT_HTML);
|
|
271
|
+
const content = await pal.getDoneContent(TEST_BILL_ID);
|
|
272
|
+
expect(content.proposalReason).toBe(EXPECTED_LIKMS_REASON);
|
|
273
|
+
});
|
|
274
|
+
test('skips likms when PAL proposalReason already exists', async () => {
|
|
275
|
+
const { pal, palHttp, likmsHttp } = setup();
|
|
276
|
+
jest.spyOn(palHttp, 'get').mockResolvedValue(PAL_CONTENT_HTML_WITH_REASON);
|
|
277
|
+
const getSpy = jest.spyOn(likmsHttp, 'get');
|
|
278
|
+
const postSpy = jest.spyOn(likmsHttp, 'post');
|
|
279
|
+
const content = await pal.getContent(TEST_BILL_ID);
|
|
280
|
+
expect(content.proposalReason).toContain('과태료 부과 기준');
|
|
281
|
+
expect(getSpy).not.toHaveBeenCalled();
|
|
282
|
+
expect(postSpy).not.toHaveBeenCalled();
|
|
283
|
+
});
|
|
284
|
+
test('skips likms when hydrateProposalReason is false', async () => {
|
|
285
|
+
const { pal, palHttp, likmsHttp } = setup({ hydrateProposalReason: false });
|
|
286
|
+
jest.spyOn(palHttp, 'get').mockResolvedValue(PAL_CONTENT_HTML_EMPTY_REASON);
|
|
287
|
+
const getSpy = jest.spyOn(likmsHttp, 'get');
|
|
288
|
+
const postSpy = jest.spyOn(likmsHttp, 'post');
|
|
289
|
+
const content = await pal.getContent(TEST_BILL_ID);
|
|
290
|
+
expect(content.proposalReason).toBeNull();
|
|
291
|
+
expect(getSpy).not.toHaveBeenCalled();
|
|
292
|
+
expect(postSpy).not.toHaveBeenCalled();
|
|
293
|
+
});
|
|
294
|
+
test('keeps null proposalReason when likms lookup fails', async () => {
|
|
295
|
+
const { pal, palHttp, likmsHttp } = setup();
|
|
296
|
+
jest.spyOn(palHttp, 'get').mockResolvedValue(PAL_CONTENT_HTML_EMPTY_REASON);
|
|
297
|
+
jest.spyOn(likmsHttp, 'get').mockRejectedValue(new Error('network down'));
|
|
298
|
+
const content = await pal.getContent(TEST_BILL_ID);
|
|
299
|
+
expect(content.proposalReason).toBeNull();
|
|
300
|
+
expect(content.title).toBe('');
|
|
301
|
+
});
|
|
302
|
+
test('keeps null proposalReason when likms has no reason either', async () => {
|
|
303
|
+
const { pal, palHttp, likmsHttp } = setup();
|
|
304
|
+
jest.spyOn(palHttp, 'get').mockResolvedValue(PAL_CONTENT_HTML_EMPTY_REASON);
|
|
305
|
+
jest.spyOn(likmsHttp, 'get').mockResolvedValue(LIKMS_DETAIL_PAGE_HTML);
|
|
306
|
+
jest
|
|
307
|
+
.spyOn(likmsHttp, 'post')
|
|
308
|
+
.mockResolvedValue(LIKMS_BILL_INFO_FRAGMENT_NO_REASON_HTML);
|
|
309
|
+
const content = await pal.getContent(TEST_BILL_ID);
|
|
310
|
+
expect(content.proposalReason).toBeNull();
|
|
311
|
+
});
|
|
312
|
+
});
|
|
313
|
+
//# sourceMappingURL=likms.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"likms.test.js","sourceRoot":"","sources":["../src/likms.test.ts"],"names":[],"mappings":"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"}
|
package/dist/pal.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Browser } from 'puppeteer';
|
|
2
2
|
import { type ITableData, type IContentData, type ISearchResult, type INsmBillItem, type INsmBillDetail, type INsmSearchResult } from './parser';
|
|
3
3
|
export type { IAttachment, ITableData, IContentData, ISearchResult, INsmAttachment, INsmBillItem, INsmBillDetail, INsmSearchResult, } from './parser';
|
|
4
4
|
export interface ScreenshotOptions {
|
|
@@ -15,6 +15,14 @@ export interface PalCrawlConfig {
|
|
|
15
15
|
retryCount?: number;
|
|
16
16
|
customHeaders?: Record<string, string>;
|
|
17
17
|
screenshot?: ScreenshotOptions;
|
|
18
|
+
/** 목록의 잘린 법안 제목을 상세 페이지에서 보정할지 여부 */
|
|
19
|
+
hydrateTruncatedTitles?: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* PAL 상세 페이지에서 제안이유가 비어 있을 때 국회 의안정보시스템
|
|
22
|
+
* (likms.assembly.go.kr)에서 제안이유를 보정할지 여부 (기본값: true).
|
|
23
|
+
* 보정 실패 시 기존 값(null)을 그대로 유지하며 오류를 던지지 않습니다.
|
|
24
|
+
*/
|
|
25
|
+
hydrateProposalReason?: boolean;
|
|
18
26
|
}
|
|
19
27
|
export interface ISearchQuery {
|
|
20
28
|
pageIndex?: number;
|
|
@@ -55,6 +63,8 @@ export declare abstract class ScreenshotBase {
|
|
|
55
63
|
export declare class PalCrawl extends ScreenshotBase {
|
|
56
64
|
private readonly httpClient;
|
|
57
65
|
private readonly parser;
|
|
66
|
+
private readonly likms;
|
|
67
|
+
private readonly hydrateProposalReason;
|
|
58
68
|
constructor(config?: PalCrawlConfig);
|
|
59
69
|
/** 진행 중인 입법예고 목록 페이지 스크린샷을 반환합니다. */
|
|
60
70
|
getPalScreenshot(): Promise<Buffer>;
|
|
@@ -75,6 +85,12 @@ export declare class PalCrawl extends ScreenshotBase {
|
|
|
75
85
|
get(): Promise<ITableData[]>;
|
|
76
86
|
/** ID로 진행 중인 입법예고의 법률안 상세 페이지 HTML을 반환합니다. */
|
|
77
87
|
getContentHTML(id: string): Promise<string>;
|
|
88
|
+
/**
|
|
89
|
+
* PAL 상세 페이지에서 파싱한 제안이유가 비어 있으면 국회 의안정보시스템
|
|
90
|
+
* (likms)에서 같은 의안의 제안이유를 조회해 채웁니다.
|
|
91
|
+
* 보정 실패·의안 없음 등의 경우 기존 결과를 그대로 반환합니다.
|
|
92
|
+
*/
|
|
93
|
+
private hydrateProposalReasonIfEmpty;
|
|
78
94
|
/** ID로 진행 중인 입법예고의 법률안 상세 정보를 조회합니다. */
|
|
79
95
|
getContent(id: string): Promise<IContentData>;
|
|
80
96
|
/** 완료된 입법예고 목록 페이지의 HTML을 반환합니다. */
|
|
@@ -175,6 +191,7 @@ export declare class NsmLmSts extends ScreenshotBase {
|
|
|
175
191
|
private readonly httpClient;
|
|
176
192
|
private readonly parser;
|
|
177
193
|
private readonly detailTitleConcurrency;
|
|
194
|
+
private readonly hydrateTruncatedTitles;
|
|
178
195
|
constructor(config?: PalCrawlConfig);
|
|
179
196
|
private isTruncatedBillName;
|
|
180
197
|
/**
|
package/dist/pal.js
CHANGED
|
@@ -1,14 +1,44 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
5
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
36
|
exports.NsmLmSts = exports.PalCrawl = exports.ScreenshotBase = void 0;
|
|
7
37
|
const url_1 = require("url");
|
|
8
|
-
const puppeteer_1 = __importDefault(require("puppeteer"));
|
|
9
38
|
const config_1 = require("./config");
|
|
10
39
|
const http_client_1 = require("./http-client");
|
|
11
40
|
const parser_1 = require("./parser");
|
|
41
|
+
const likms_1 = require("./likms");
|
|
12
42
|
/**
|
|
13
43
|
* Puppeteer 기반 스크린샷 기능을 공유하는 베이스 클래스.
|
|
14
44
|
* `PalCrawl`과 `NsmLmSts` 양쪽에서 상속합니다.
|
|
@@ -28,7 +58,9 @@ class ScreenshotBase {
|
|
|
28
58
|
/** Puppeteer 브라우저 인스턴스를 초기화합니다. */
|
|
29
59
|
async initBrowser() {
|
|
30
60
|
if (!this.browser) {
|
|
31
|
-
|
|
61
|
+
// puppeteer 25+는 순수 ESM이므로 지연 로딩한다 (CJS 환경의 require(esm) 회피).
|
|
62
|
+
const { default: puppeteer } = await Promise.resolve().then(() => __importStar(require('puppeteer')));
|
|
63
|
+
this.browser = await puppeteer.launch({
|
|
32
64
|
headless: true,
|
|
33
65
|
args: ['--no-sandbox', '--disable-setuid-sandbox'],
|
|
34
66
|
});
|
|
@@ -64,7 +96,8 @@ class ScreenshotBase {
|
|
|
64
96
|
? (this.screenshotConfig.quality ?? 80)
|
|
65
97
|
: undefined,
|
|
66
98
|
});
|
|
67
|
-
|
|
99
|
+
// puppeteer 25+는 Uint8Array를 반환하므로 공개 API(Buffer) 호환성을 유지한다.
|
|
100
|
+
return Buffer.from(screenshotBuffer);
|
|
68
101
|
}
|
|
69
102
|
finally {
|
|
70
103
|
await page.close();
|
|
@@ -89,6 +122,13 @@ class PalCrawl extends ScreenshotBase {
|
|
|
89
122
|
customHeaders: config?.customHeaders ?? {},
|
|
90
123
|
});
|
|
91
124
|
this.parser = new parser_1.PalParser();
|
|
125
|
+
this.likms = new likms_1.LikmsCrawler({
|
|
126
|
+
userAgent: config?.userAgent ?? config_1.Config.UserAgent,
|
|
127
|
+
timeout: config?.timeout ?? 10000,
|
|
128
|
+
retryCount: config?.retryCount ?? 3,
|
|
129
|
+
customHeaders: config?.customHeaders ?? {},
|
|
130
|
+
});
|
|
131
|
+
this.hydrateProposalReason = config?.hydrateProposalReason ?? true;
|
|
92
132
|
}
|
|
93
133
|
/** 진행 중인 입법예고 목록 페이지 스크린샷을 반환합니다. */
|
|
94
134
|
async getPalScreenshot() {
|
|
@@ -175,10 +215,31 @@ class PalCrawl extends ScreenshotBase {
|
|
|
175
215
|
url.searchParams.set('lgsltPaId', normalizedId);
|
|
176
216
|
return this.httpClient.get(url);
|
|
177
217
|
}
|
|
218
|
+
/**
|
|
219
|
+
* PAL 상세 페이지에서 파싱한 제안이유가 비어 있으면 국회 의안정보시스템
|
|
220
|
+
* (likms)에서 같은 의안의 제안이유를 조회해 채웁니다.
|
|
221
|
+
* 보정 실패·의안 없음 등의 경우 기존 결과를 그대로 반환합니다.
|
|
222
|
+
*/
|
|
223
|
+
async hydrateProposalReasonIfEmpty(id, content) {
|
|
224
|
+
if (!this.hydrateProposalReason || content.proposalReason) {
|
|
225
|
+
return content;
|
|
226
|
+
}
|
|
227
|
+
try {
|
|
228
|
+
const proposalReason = await this.likms.getProposalReason(id);
|
|
229
|
+
if (proposalReason) {
|
|
230
|
+
return { ...content, proposalReason };
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
catch {
|
|
234
|
+
// likms 보정 실패 시 기존 결과 유지
|
|
235
|
+
}
|
|
236
|
+
return content;
|
|
237
|
+
}
|
|
178
238
|
/** ID로 진행 중인 입법예고의 법률안 상세 정보를 조회합니다. */
|
|
179
239
|
async getContent(id) {
|
|
180
240
|
const html = await this.getContentHTML(id);
|
|
181
|
-
|
|
241
|
+
const content = this.parser.parseContent(html);
|
|
242
|
+
return this.hydrateProposalReasonIfEmpty(id, content);
|
|
182
243
|
}
|
|
183
244
|
/** 완료된 입법예고 목록 페이지의 HTML을 반환합니다. */
|
|
184
245
|
async getDoneHTML() {
|
|
@@ -204,7 +265,8 @@ class PalCrawl extends ScreenshotBase {
|
|
|
204
265
|
/** ID로 완료된 입법예고의 법률안 상세 정보를 조회합니다. */
|
|
205
266
|
async getDoneContent(id) {
|
|
206
267
|
const html = await this.getDoneContentHTML(id);
|
|
207
|
-
|
|
268
|
+
const content = this.parser.parseContent(html);
|
|
269
|
+
return this.hydrateProposalReasonIfEmpty(id, content);
|
|
208
270
|
}
|
|
209
271
|
// ── Search / Filter ──────────────────────────────────────────────────────────
|
|
210
272
|
/** 진행 중인 입법예고를 검색합니다. 필터를 지정하지 않으면 1페이지를 반환합니다. */
|
|
@@ -283,6 +345,7 @@ class NsmLmSts extends ScreenshotBase {
|
|
|
283
345
|
});
|
|
284
346
|
this.parser = new parser_1.NsmLmStsParser();
|
|
285
347
|
this.detailTitleConcurrency = 4;
|
|
348
|
+
this.hydrateTruncatedTitles = config?.hydrateTruncatedTitles ?? false;
|
|
286
349
|
}
|
|
287
350
|
isTruncatedBillName(billName) {
|
|
288
351
|
return billName.includes('...') || billName.includes('…');
|
|
@@ -371,7 +434,9 @@ class NsmLmSts extends ScreenshotBase {
|
|
|
371
434
|
async search(query = {}) {
|
|
372
435
|
const html = await this.getListHTML(query);
|
|
373
436
|
const parsed = this.parser.parseList(html);
|
|
374
|
-
const items =
|
|
437
|
+
const items = this.hydrateTruncatedTitles
|
|
438
|
+
? await this.hydrateBillNamesFromDetail(parsed.items)
|
|
439
|
+
: parsed.items;
|
|
375
440
|
return {
|
|
376
441
|
...parsed,
|
|
377
442
|
items,
|
package/dist/pal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pal.js","sourceRoot":"","sources":["../src/pal.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pal.js","sourceRoot":"","sources":["../src/pal.ts"],"names":[],"mappings":"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"}
|
package/dist/pal.test.js
CHANGED
|
@@ -968,7 +968,7 @@ describe('NsmLmSts', () => {
|
|
|
968
968
|
mockGet.mockRestore();
|
|
969
969
|
});
|
|
970
970
|
test('uses detail html title when list title is truncated', async () => {
|
|
971
|
-
const instance = new pal_1.NsmLmSts();
|
|
971
|
+
const instance = new pal_1.NsmLmSts({ hydrateTruncatedTitles: true });
|
|
972
972
|
const httpClient = instance.httpClient;
|
|
973
973
|
const mockGet = jest
|
|
974
974
|
.spyOn(httpClient, 'get')
|
|
@@ -986,7 +986,7 @@ describe('NsmLmSts', () => {
|
|
|
986
986
|
mockGet.mockRestore();
|
|
987
987
|
});
|
|
988
988
|
test('keeps list title when detail request fails', async () => {
|
|
989
|
-
const instance = new pal_1.NsmLmSts();
|
|
989
|
+
const instance = new pal_1.NsmLmSts({ hydrateTruncatedTitles: true });
|
|
990
990
|
const httpClient = instance.httpClient;
|
|
991
991
|
const mockGet = jest
|
|
992
992
|
.spyOn(httpClient, 'get')
|
|
@@ -1003,6 +1003,21 @@ describe('NsmLmSts', () => {
|
|
|
1003
1003
|
expect(result.items[0].billName).toBe('인공지능 기본법 일부개정...');
|
|
1004
1004
|
mockGet.mockRestore();
|
|
1005
1005
|
});
|
|
1006
|
+
test('does not fetch details for truncated titles by default', async () => {
|
|
1007
|
+
const instance = new pal_1.NsmLmSts();
|
|
1008
|
+
const httpClient = instance.httpClient;
|
|
1009
|
+
const mockGet = jest
|
|
1010
|
+
.spyOn(httpClient, 'get')
|
|
1011
|
+
.mockImplementation(async (...args) => {
|
|
1012
|
+
const url = args[0];
|
|
1013
|
+
expect(url.toString()).not.toContain('/detailRP');
|
|
1014
|
+
return NSM_LIST_HTML_TRUNCATED_TITLE;
|
|
1015
|
+
});
|
|
1016
|
+
const result = await instance.search({ pageSize: 1 });
|
|
1017
|
+
expect(result.items[0]?.billName).toBe('인공지능 기본법 일부개정...');
|
|
1018
|
+
expect(mockGet).toHaveBeenCalledTimes(1);
|
|
1019
|
+
mockGet.mockRestore();
|
|
1020
|
+
});
|
|
1006
1021
|
});
|
|
1007
1022
|
// ── constructor ────────────────────────────────────────────────────────────
|
|
1008
1023
|
describe('constructor', () => {
|