pal-crawl 1.0.7 → 1.1.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/README.md CHANGED
@@ -3,24 +3,45 @@
3
3
  [![License](https://img.shields.io/badge/License-MIT-blue)](#license)
4
4
  [![stars - pal-crawl](https://img.shields.io/github/stars/vientorepublic/pal-crawl?style=social)](https://github.com/vientorepublic/pal-crawl)
5
5
  [![forks - pal-crawl](https://img.shields.io/github/forks/vientorepublic/pal-crawl?style=social)](https://github.com/vientorepublic/pal-crawl)
6
+ [![npm version](https://badge.fury.io/js/pal-crawl.svg)](https://badge.fury.io/js/pal-crawl)
7
+ [![Build](https://github.com/vientorepublic/pal-crawl/actions/workflows/build.yml/badge.svg)](https://github.com/vientorepublic/pal-crawl/actions/workflows/build.yml)
8
+ [![Test](https://github.com/vientorepublic/pal-crawl/actions/workflows/test.yml/badge.svg)](https://github.com/vientorepublic/pal-crawl/actions/workflows/test.yml)
6
9
 
7
10
  <img width="1312" alt="Screenshot" src="https://github.com/user-attachments/assets/2e243915-6d9c-470b-9510-27ef5546ab61" />
8
11
 
9
12
  국회입법예고(pal.assembly.go.kr)의 진행 중인 입법 예고 크롤러
10
13
 
11
- ## Methods
14
+ ---
12
15
 
13
- ### get: () => Promise<ITableData[]>
16
+ ## Table of Contents
14
17
 
15
- ```javascript
16
- import { PalCrawl } from 'pal-crawl';
18
+ - [Introduction](#introduction)
19
+ - [Installation](#installation)
20
+ - [Base Types](#base-types)
21
+ - [Methods](#methods)
22
+ - [get](#get)
23
+ - [License](#license)
17
24
 
18
- const palCrawl = new PalCrawl();
19
- const table = await palCrawl.get();
25
+ ---
20
26
 
21
- console.log(table);
27
+ ## Introduction
28
+
29
+ 국회입법예고(pal.assembly.go.kr) 사이트에서 진행 중인 입법 예고 데이터를 크롤링하는 도구입니다. 입법 예고의 주요 정보를 손쉽게 가져올 수 있습니다.
30
+
31
+ ---
32
+
33
+ ## Installation
34
+
35
+ ```bash
36
+ npm install pal-crawl
22
37
  ```
23
38
 
39
+ ---
40
+
41
+ ## Base Types
42
+
43
+ `ITableData`는 크롤링된 입법 예고 데이터를 나타내는 인터페이스입니다.
44
+
24
45
  ```typescript
25
46
  interface ITableData {
26
47
  num: number; // 의안번호
@@ -32,6 +53,25 @@ interface ITableData {
32
53
  }
33
54
  ```
34
55
 
56
+ ---
57
+
58
+ ## Methods
59
+
60
+ ### get
61
+
62
+ `get` 메서드는 진행 중인 입법 예고 데이터를 가져옵니다.
63
+
64
+ ```javascript
65
+ import { PalCrawl } from 'pal-crawl';
66
+
67
+ const palCrawl = new PalCrawl();
68
+ const table = await palCrawl.get();
69
+
70
+ console.log(table);
71
+ ```
72
+
73
+ ---
74
+
35
75
  ## License
36
76
 
37
- MIT
77
+ This project is licensed under the MIT License. See the [LICENSE](#license) section for details.
package/dist/pal.js CHANGED
@@ -34,34 +34,38 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.PalCrawl = void 0;
37
- const axios_1 = __importStar(require("axios"));
37
+ const https = __importStar(require("https"));
38
+ const url_1 = require("url");
38
39
  const cheerio = __importStar(require("cheerio"));
39
40
  const config_1 = require("./config");
40
41
  class PalCrawl {
41
42
  async getPalHTML() {
42
- try {
43
- const res = await axios_1.default.get(config_1.Config.URL, {
44
- baseURL: config_1.Config.DOMAIN,
43
+ return new Promise((resolve, reject) => {
44
+ const url = new url_1.URL(config_1.Config.URL, config_1.Config.DOMAIN);
45
+ const options = {
45
46
  headers: {
46
47
  'User-Agent': config_1.Config.UserAgent,
47
48
  },
48
- });
49
- return res.data;
50
- }
51
- catch (err) {
52
- if ((0, axios_1.isAxiosError)(err) && err.response) {
53
- throw new Error(`Invalid response: ${err.response.status} ${err.response.statusText}`);
54
- }
55
- else {
56
- if (err instanceof Error) {
57
- throw new Error(err.message);
49
+ };
50
+ https
51
+ .get(url, options, (res) => {
52
+ if (res.statusCode &&
53
+ (res.statusCode < 200 || res.statusCode >= 300)) {
54
+ reject(new Error(`Invalid response: ${res.statusCode} ${res.statusMessage}`));
55
+ return;
58
56
  }
59
- else {
60
- console.error(err);
61
- throw new Error('Unknown Error');
62
- }
63
- }
64
- }
57
+ let data = '';
58
+ res.on('data', (chunk) => {
59
+ data += chunk;
60
+ });
61
+ res.on('end', () => {
62
+ resolve(data);
63
+ });
64
+ })
65
+ .on('error', (err) => {
66
+ reject(err);
67
+ });
68
+ });
65
69
  }
66
70
  parseTable(html) {
67
71
  const $ = cheerio.load(html);
package/dist/pal.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"pal.js","sourceRoot":"","sources":["../src/pal.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA4C;AAC5C,iDAAmC;AACnC,qCAAkC;AAWlC,MAAa,QAAQ;IACZ,KAAK,CAAC,UAAU;QACrB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,eAAK,CAAC,GAAG,CAAS,eAAM,CAAC,GAAG,EAAE;gBAC9C,OAAO,EAAE,eAAM,CAAC,MAAM;gBACtB,OAAO,EAAE;oBACP,YAAY,EAAE,eAAM,CAAC,SAAS;iBAC/B;aACF,CAAC,CAAC;YACH,OAAO,GAAG,CAAC,IAAI,CAAC;QAClB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,IAAA,oBAAY,EAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACtC,MAAM,IAAI,KAAK,CACb,qBAAqB,GAAG,CAAC,QAAQ,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,CACtE,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;oBACzB,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC/B,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACnB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAEM,UAAU,CAAC,IAAY;QAC5B,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAiB,EAAE,CAAC;QAChC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;YAClB,MAAM,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;YAC1E,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACtE,MAAM,WAAW,GAAG,MAAM,CACxB,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAC7D,CAAC;gBACF,MAAM,gBAAgB,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;gBACrE,MAAM,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;gBAC9D,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;gBAChE,IAAI,SAAS,GAAG,EAAE,CAAC;gBACnB,IAAI,IAAI,EAAE,CAAC;oBACT,SAAS,GAAG,eAAM,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnC,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC;oBACV,GAAG;oBACH,OAAO;oBACP,gBAAgB;oBAChB,SAAS;oBACT,WAAW;oBACX,IAAI,EAAE,SAAS;iBAChB,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AA/DD,4BA+DC"}
1
+ {"version":3,"file":"pal.js","sourceRoot":"","sources":["../src/pal.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAC/B,6BAA0B;AAC1B,iDAAmC;AACnC,qCAAkC;AAWlC,MAAa,QAAQ;IACZ,KAAK,CAAC,UAAU;QACrB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,GAAG,GAAG,IAAI,SAAG,CAAC,eAAM,CAAC,GAAG,EAAE,eAAM,CAAC,MAAM,CAAC,CAAC;YAC/C,MAAM,OAAO,GAAG;gBACd,OAAO,EAAE;oBACP,YAAY,EAAE,eAAM,CAAC,SAAS;iBAC/B;aACF,CAAC;YAEF,KAAK;iBACF,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACzB,IACE,GAAG,CAAC,UAAU;oBACd,CAAC,GAAG,CAAC,UAAU,GAAG,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,EAC/C,CAAC;oBACD,MAAM,CACJ,IAAI,KAAK,CACP,qBAAqB,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,aAAa,EAAE,CAC3D,CACF,CAAC;oBACF,OAAO;gBACT,CAAC;gBAED,IAAI,IAAI,GAAG,EAAE,CAAC;gBACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;oBACvB,IAAI,IAAI,KAAK,CAAC;gBAChB,CAAC,CAAC,CAAC;gBAEH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;oBACjB,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC;iBACD,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACnB,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,UAAU,CAAC,IAAY;QAC5B,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAiB,EAAE,CAAC;QAChC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;YAClB,MAAM,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;YAC1E,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACtE,MAAM,WAAW,GAAG,MAAM,CACxB,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAC7D,CAAC;gBACF,MAAM,gBAAgB,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;gBACrE,MAAM,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;gBAC9D,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;gBAChE,IAAI,SAAS,GAAG,EAAE,CAAC;gBACnB,IAAI,IAAI,EAAE,CAAC;oBACT,SAAS,GAAG,eAAM,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnC,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC;oBACV,GAAG;oBACH,OAAO;oBACP,gBAAgB;oBAChB,SAAS;oBACT,WAAW;oBACX,IAAI,EAAE,SAAS;iBAChB,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AA5ED,4BA4EC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pal-crawl",
3
- "version": "1.0.7",
3
+ "version": "1.1.0",
4
4
  "description": "국회입법예고(pal.assembly.go.kr)의 진행 중인 입법 예고 크롤러",
5
5
  "license": "MIT",
6
6
  "author": "vientorepublic",
@@ -23,7 +23,6 @@
23
23
  },
24
24
  "homepage": "https://github.com/vientorepublic/pal-crawl#readme",
25
25
  "dependencies": {
26
- "axios": "^1.7.9",
27
26
  "cheerio": "^1.0.0"
28
27
  },
29
28
  "devDependencies": {