Showing
4 changed files
with
555 additions
and
0 deletions
coupang.js
0 → 100644
1 | +const puppeteer = require('puppeteer'); | ||
2 | + | ||
3 | +// Gmarket Cart Crawling | ||
4 | +(async () => { | ||
5 | + | ||
6 | + // launching headless browser | ||
7 | + const browser = await puppeteer.launch(); | ||
8 | + // making a new page | ||
9 | + const page = await browser.newPage(); | ||
10 | + | ||
11 | + //console input id & password | ||
12 | + var args = process.argv; | ||
13 | + | ||
14 | + | ||
15 | + var c_id = args[2]; | ||
16 | + var c_pw = args[3]; | ||
17 | + | ||
18 | + console.log(args[2] + " " + args[3]); | ||
19 | + | ||
20 | + | ||
21 | + // Gmarket login page | ||
22 | + await page.goto('https://login.coupang.com/login/login.pang?rtnUrl=https%3A%2F%2Fwww.coupang.com%2Fnp%2Fpost%2Flogin%3Fr%3Dhttps%253A%252F%252Fwww.coupang.com%252F'); | ||
23 | + // Ading user information | ||
24 | + await page.evaluate((id, pwd) => { | ||
25 | + document.querySelector('#login-email-input').value = id; | ||
26 | + document.querySelector('#login-password-input').value = pwd; | ||
27 | + }, c_id, c_pw); | ||
28 | + | ||
29 | + await console.log(c_id,c_pw); | ||
30 | + | ||
31 | + // try login | ||
32 | + await page.click('.login__button'); | ||
33 | + await page.waitForNavigation(); | ||
34 | + | ||
35 | + // goto cart page | ||
36 | + await page.goto('https://cart.coupang.com/cartView.pang'); | ||
37 | + await page.screenshot({ path: 'coupang.png', fullPage:true }); | ||
38 | + | ||
39 | + // container which will hold crawled data [{},{}...] | ||
40 | + let data = []; | ||
41 | + | ||
42 | + // crawling start! (using getOne and getAll function) | ||
43 | + data = await getAll(page); | ||
44 | + //data.push(await getAll(page)); // data[0][n] | ||
45 | + | ||
46 | + //logging the result | ||
47 | + for(let index = 0; index < data.length; index++){ | ||
48 | + console.log(data[index]); | ||
49 | + } | ||
50 | + | ||
51 | + await browser.close(); | ||
52 | + | ||
53 | +})(); | ||
54 | + | ||
55 | + | ||
56 | + | ||
57 | + // Crawling cart informations(object) to data(array) | ||
58 | + async function getAll(page) { | ||
59 | + var data = []; | ||
60 | + | ||
61 | + //coupang table tr counts has dummy 3 tr | ||
62 | + const number = await page.$$eval("#cartTable-sku > tr", (data) => data.length)-3; | ||
63 | + // counting the number of the box | ||
64 | + // coupang car info starts with index 2 | ||
65 | + for (let index = 0; index < number; index++) { | ||
66 | + data.push(await getOne(page, index + 2)); | ||
67 | + // pushing to the array | ||
68 | + | ||
69 | + } | ||
70 | + | ||
71 | + return Promise.resolve(data); | ||
72 | +} | ||
73 | + | ||
74 | + | ||
75 | +// Crawling cart information to data(object) | ||
76 | +async function getOne(page, index) { | ||
77 | + | ||
78 | + var data = {}; | ||
79 | + | ||
80 | + // this is example code | ||
81 | + //data.programPeriod = await page.$eval("#iph_content > div > div.list_type_h1.web_view.mt3 > table > tbody > tr:nth-child(" + index + ") > td:nth-child(5)", (data) => data.textContent); | ||
82 | + | ||
83 | + // product name | ||
84 | + data.prd_name = await page.$eval("#cartTable-sku > tr:nth-child(" + index + ") > td.product-box > div.product-name-part > a", data => data.textContent); | ||
85 | + // product price | ||
86 | + data.prd_price = await page.$eval("#cartTable-sku > tr:nth-child(" + index + ") > td.unit-total-price > div", data => data.textContent); | ||
87 | + // product link | ||
88 | + data.prd_link = await page.$eval("#cartTable-sku > tr:nth-child(" + index + ") > td.product-box > div.product-name-part > a", data => data.href); | ||
89 | + // product image source | ||
90 | + data.prd_img = await page.$eval("#cartTable-sku > tr:nth-child(" + index + ") > td:nth-child(2) > a > img", data => data.src); | ||
91 | + // not yet | ||
92 | + | ||
93 | + return Promise.resolve(data); | ||
94 | +} | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
gmarket.js
0 → 100644
1 | +const puppeteer = require('puppeteer'); | ||
2 | +const readline = require('readline'); | ||
3 | + | ||
4 | + | ||
5 | +// Gmarket Cart Crawling | ||
6 | +(async () => { | ||
7 | + | ||
8 | + // launching headless browser | ||
9 | + const browser = await puppeteer.launch(); | ||
10 | + // making a new page | ||
11 | + const page = await browser.newPage(); | ||
12 | + | ||
13 | + //console input id & password | ||
14 | + var args = process.argv; | ||
15 | + | ||
16 | + var g_id = args[2]; | ||
17 | + var g_pw = args[3]; | ||
18 | + | ||
19 | + console.log(args[2] + " " + args[3]); | ||
20 | + | ||
21 | + // Gmarket login page | ||
22 | + await page.goto('https://signinssl.gmarket.co.kr/login/login?url=https://www.gmarket.co.kr/'); | ||
23 | + // Ading user information | ||
24 | + await page.evaluate((id, pwd) => { | ||
25 | + document.querySelector('#id').value = id; | ||
26 | + document.querySelector('#pwd').value = pwd; | ||
27 | + }, g_id, g_pw); | ||
28 | + | ||
29 | + await console.log(g_id,g_pw); | ||
30 | + | ||
31 | + // try login | ||
32 | + await page.click('.button_login'); | ||
33 | + await page.waitForNavigation(); | ||
34 | + | ||
35 | + // goto cart page | ||
36 | + await page.goto('https://cart.gmarket.co.kr/ko/cart'); | ||
37 | + await page.screenshot({ path: 'gmarket.png', fullPage:true }); | ||
38 | + | ||
39 | + // container which will hold crawled data [{},{}...] | ||
40 | + let data = []; | ||
41 | + | ||
42 | + // crawling start! (using getOne and getAll function) | ||
43 | + data = await getAll(page); | ||
44 | + //data.push(await getAll(page)); // data[0][n] | ||
45 | + | ||
46 | + //logging the result | ||
47 | + for(let index = 0; index < data.length; index++){ | ||
48 | + console.log(data[index]); | ||
49 | + } | ||
50 | + | ||
51 | + await browser.close(); | ||
52 | + | ||
53 | +})(); | ||
54 | + | ||
55 | + | ||
56 | + | ||
57 | + // Crawling cart informations(object) to data(array) | ||
58 | + async function getAll(page) { | ||
59 | + var data = []; | ||
60 | + | ||
61 | + //const number = await page.$$eval("#cart_list > ol > li:nth-child(1) > div.cart--basket_body > div > ul > li", (data) => data.length); | ||
62 | + const number = await page.$$eval("#cart_list > ol > li", (data) => data.length); | ||
63 | + // counting the number of the box | ||
64 | + for (let index = 0; index < number; index++) { | ||
65 | + data.push(await getOne(page, index + 1)); | ||
66 | + // pushing to the array | ||
67 | + | ||
68 | + } | ||
69 | + | ||
70 | + return Promise.resolve(data); | ||
71 | +} | ||
72 | + | ||
73 | + | ||
74 | +// Crawling cart information to data(object) | ||
75 | +async function getOne(page, index) { | ||
76 | + | ||
77 | + var data = {}; | ||
78 | + | ||
79 | + // this is example code | ||
80 | + //data.programPeriod = await page.$eval("#iph_content > div > div.list_type_h1.web_view.mt3 > table > tbody > tr:nth-child(" + index + ") > td:nth-child(5)", (data) => data.textContent); | ||
81 | + | ||
82 | + // product name | ||
83 | + data.prd_name = await page.$eval("#cart_list > ol > li:nth-child(" + index + ") > div.cart--basket_body > div > ul > li > div > div.item_info > dl > dd > div.section.item_title > a > span", data => data.textContent); | ||
84 | + // product price | ||
85 | + data.prd_price = await page.$eval("#cart_list > ol > li:nth-child(" + index + ") > div.cart--basket_body > div > ul > li > div > div.item_info > dl > dd > div.section.item_price > span.format-price > span > strong", data => data.textContent); | ||
86 | + // product link | ||
87 | + data.prd_link = await page.$eval("#cart_list > ol > li:nth-child(" + index + ") > div.cart--basket_body > div > ul > li > div > div.item_info > dl > dd > div.section.item_title > a", data => data.href); | ||
88 | + // product image source | ||
89 | + data.prd_img = await page.$eval("#cart_list > ol > li:nth-child(" + index + ") > div.cart--basket_body > div > ul > li > div > div.item_img > a > img", data => data.src); | ||
90 | + // not yet | ||
91 | + | ||
92 | + return Promise.resolve(data); | ||
93 | +} | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
package-lock.json
0 → 100644
1 | +{ | ||
2 | + "name": "shoppingcart", | ||
3 | + "version": "1.0.0", | ||
4 | + "lockfileVersion": 1, | ||
5 | + "requires": true, | ||
6 | + "dependencies": { | ||
7 | + "@types/node": { | ||
8 | + "version": "14.0.9", | ||
9 | + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.9.tgz", | ||
10 | + "integrity": "sha512-0sCTiXKXELOBxvZLN4krQ0FPOAA7ij+6WwvD0k/PHd9/KAkr4dXel5J9fh6F4x1FwAQILqAWkmpeuS6mjf1iKA==", | ||
11 | + "optional": true | ||
12 | + }, | ||
13 | + "@types/yauzl": { | ||
14 | + "version": "2.9.1", | ||
15 | + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.1.tgz", | ||
16 | + "integrity": "sha512-A1b8SU4D10uoPjwb0lnHmmu8wZhR9d+9o2PKBQT2jU5YPTKsxac6M2qGAdY7VcL+dHHhARVUDmeg0rOrcd9EjA==", | ||
17 | + "optional": true, | ||
18 | + "requires": { | ||
19 | + "@types/node": "*" | ||
20 | + } | ||
21 | + }, | ||
22 | + "agent-base": { | ||
23 | + "version": "5.1.1", | ||
24 | + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz", | ||
25 | + "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==" | ||
26 | + }, | ||
27 | + "balanced-match": { | ||
28 | + "version": "1.0.0", | ||
29 | + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", | ||
30 | + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" | ||
31 | + }, | ||
32 | + "base64-js": { | ||
33 | + "version": "1.3.1", | ||
34 | + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", | ||
35 | + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" | ||
36 | + }, | ||
37 | + "bl": { | ||
38 | + "version": "4.0.2", | ||
39 | + "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.2.tgz", | ||
40 | + "integrity": "sha512-j4OH8f6Qg2bGuWfRiltT2HYGx0e1QcBTrK9KAHNMwMZdQnDZFk0ZSYIpADjYCB3U12nicC5tVJwSIhwOWjb4RQ==", | ||
41 | + "requires": { | ||
42 | + "buffer": "^5.5.0", | ||
43 | + "inherits": "^2.0.4", | ||
44 | + "readable-stream": "^3.4.0" | ||
45 | + } | ||
46 | + }, | ||
47 | + "brace-expansion": { | ||
48 | + "version": "1.1.11", | ||
49 | + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", | ||
50 | + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", | ||
51 | + "requires": { | ||
52 | + "balanced-match": "^1.0.0", | ||
53 | + "concat-map": "0.0.1" | ||
54 | + } | ||
55 | + }, | ||
56 | + "buffer": { | ||
57 | + "version": "5.6.0", | ||
58 | + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", | ||
59 | + "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", | ||
60 | + "requires": { | ||
61 | + "base64-js": "^1.0.2", | ||
62 | + "ieee754": "^1.1.4" | ||
63 | + } | ||
64 | + }, | ||
65 | + "buffer-crc32": { | ||
66 | + "version": "0.2.13", | ||
67 | + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", | ||
68 | + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" | ||
69 | + }, | ||
70 | + "chownr": { | ||
71 | + "version": "1.1.4", | ||
72 | + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", | ||
73 | + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" | ||
74 | + }, | ||
75 | + "concat-map": { | ||
76 | + "version": "0.0.1", | ||
77 | + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", | ||
78 | + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" | ||
79 | + }, | ||
80 | + "debug": { | ||
81 | + "version": "4.1.1", | ||
82 | + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", | ||
83 | + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", | ||
84 | + "requires": { | ||
85 | + "ms": "^2.1.1" | ||
86 | + } | ||
87 | + }, | ||
88 | + "end-of-stream": { | ||
89 | + "version": "1.4.4", | ||
90 | + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", | ||
91 | + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", | ||
92 | + "requires": { | ||
93 | + "once": "^1.4.0" | ||
94 | + } | ||
95 | + }, | ||
96 | + "extract-zip": { | ||
97 | + "version": "2.0.0", | ||
98 | + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.0.tgz", | ||
99 | + "integrity": "sha512-i42GQ498yibjdvIhivUsRslx608whtGoFIhF26Z7O4MYncBxp8CwalOs1lnHy21A9sIohWO2+uiE4SRtC9JXDg==", | ||
100 | + "requires": { | ||
101 | + "@types/yauzl": "^2.9.1", | ||
102 | + "debug": "^4.1.1", | ||
103 | + "get-stream": "^5.1.0", | ||
104 | + "yauzl": "^2.10.0" | ||
105 | + } | ||
106 | + }, | ||
107 | + "fd-slicer": { | ||
108 | + "version": "1.1.0", | ||
109 | + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", | ||
110 | + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", | ||
111 | + "requires": { | ||
112 | + "pend": "~1.2.0" | ||
113 | + } | ||
114 | + }, | ||
115 | + "fs-constants": { | ||
116 | + "version": "1.0.0", | ||
117 | + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", | ||
118 | + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" | ||
119 | + }, | ||
120 | + "fs.realpath": { | ||
121 | + "version": "1.0.0", | ||
122 | + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", | ||
123 | + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" | ||
124 | + }, | ||
125 | + "get-stream": { | ||
126 | + "version": "5.1.0", | ||
127 | + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", | ||
128 | + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", | ||
129 | + "requires": { | ||
130 | + "pump": "^3.0.0" | ||
131 | + } | ||
132 | + }, | ||
133 | + "glob": { | ||
134 | + "version": "7.1.6", | ||
135 | + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", | ||
136 | + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", | ||
137 | + "requires": { | ||
138 | + "fs.realpath": "^1.0.0", | ||
139 | + "inflight": "^1.0.4", | ||
140 | + "inherits": "2", | ||
141 | + "minimatch": "^3.0.4", | ||
142 | + "once": "^1.3.0", | ||
143 | + "path-is-absolute": "^1.0.0" | ||
144 | + } | ||
145 | + }, | ||
146 | + "https-proxy-agent": { | ||
147 | + "version": "4.0.0", | ||
148 | + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz", | ||
149 | + "integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==", | ||
150 | + "requires": { | ||
151 | + "agent-base": "5", | ||
152 | + "debug": "4" | ||
153 | + } | ||
154 | + }, | ||
155 | + "ieee754": { | ||
156 | + "version": "1.1.13", | ||
157 | + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", | ||
158 | + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" | ||
159 | + }, | ||
160 | + "inflight": { | ||
161 | + "version": "1.0.6", | ||
162 | + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", | ||
163 | + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", | ||
164 | + "requires": { | ||
165 | + "once": "^1.3.0", | ||
166 | + "wrappy": "1" | ||
167 | + } | ||
168 | + }, | ||
169 | + "inherits": { | ||
170 | + "version": "2.0.4", | ||
171 | + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", | ||
172 | + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" | ||
173 | + }, | ||
174 | + "mime": { | ||
175 | + "version": "2.4.6", | ||
176 | + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", | ||
177 | + "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==" | ||
178 | + }, | ||
179 | + "minimatch": { | ||
180 | + "version": "3.0.4", | ||
181 | + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", | ||
182 | + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", | ||
183 | + "requires": { | ||
184 | + "brace-expansion": "^1.1.7" | ||
185 | + } | ||
186 | + }, | ||
187 | + "mkdirp-classic": { | ||
188 | + "version": "0.5.3", | ||
189 | + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", | ||
190 | + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" | ||
191 | + }, | ||
192 | + "ms": { | ||
193 | + "version": "2.1.2", | ||
194 | + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", | ||
195 | + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" | ||
196 | + }, | ||
197 | + "once": { | ||
198 | + "version": "1.4.0", | ||
199 | + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", | ||
200 | + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", | ||
201 | + "requires": { | ||
202 | + "wrappy": "1" | ||
203 | + } | ||
204 | + }, | ||
205 | + "path-is-absolute": { | ||
206 | + "version": "1.0.1", | ||
207 | + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", | ||
208 | + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" | ||
209 | + }, | ||
210 | + "pend": { | ||
211 | + "version": "1.2.0", | ||
212 | + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", | ||
213 | + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" | ||
214 | + }, | ||
215 | + "progress": { | ||
216 | + "version": "2.0.3", | ||
217 | + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", | ||
218 | + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" | ||
219 | + }, | ||
220 | + "proxy-from-env": { | ||
221 | + "version": "1.1.0", | ||
222 | + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", | ||
223 | + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" | ||
224 | + }, | ||
225 | + "pump": { | ||
226 | + "version": "3.0.0", | ||
227 | + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", | ||
228 | + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", | ||
229 | + "requires": { | ||
230 | + "end-of-stream": "^1.1.0", | ||
231 | + "once": "^1.3.1" | ||
232 | + } | ||
233 | + }, | ||
234 | + "puppeteer": { | ||
235 | + "version": "3.3.0", | ||
236 | + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-3.3.0.tgz", | ||
237 | + "integrity": "sha512-23zNqRltZ1PPoK28uRefWJ/zKb5Jhnzbbwbpcna2o5+QMn17F0khq5s1bdH3vPlyj+J36pubccR8wiNA/VE0Vw==", | ||
238 | + "requires": { | ||
239 | + "debug": "^4.1.0", | ||
240 | + "extract-zip": "^2.0.0", | ||
241 | + "https-proxy-agent": "^4.0.0", | ||
242 | + "mime": "^2.0.3", | ||
243 | + "progress": "^2.0.1", | ||
244 | + "proxy-from-env": "^1.0.0", | ||
245 | + "rimraf": "^3.0.2", | ||
246 | + "tar-fs": "^2.0.0", | ||
247 | + "unbzip2-stream": "^1.3.3", | ||
248 | + "ws": "^7.2.3" | ||
249 | + } | ||
250 | + }, | ||
251 | + "readable-stream": { | ||
252 | + "version": "3.6.0", | ||
253 | + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", | ||
254 | + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", | ||
255 | + "requires": { | ||
256 | + "inherits": "^2.0.3", | ||
257 | + "string_decoder": "^1.1.1", | ||
258 | + "util-deprecate": "^1.0.1" | ||
259 | + } | ||
260 | + }, | ||
261 | + "readline": { | ||
262 | + "version": "1.3.0", | ||
263 | + "resolved": "https://registry.npmjs.org/readline/-/readline-1.3.0.tgz", | ||
264 | + "integrity": "sha1-xYDXfvLPyHUrEySYBg3JeTp6wBw=" | ||
265 | + }, | ||
266 | + "rimraf": { | ||
267 | + "version": "3.0.2", | ||
268 | + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", | ||
269 | + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", | ||
270 | + "requires": { | ||
271 | + "glob": "^7.1.3" | ||
272 | + } | ||
273 | + }, | ||
274 | + "safe-buffer": { | ||
275 | + "version": "5.2.1", | ||
276 | + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", | ||
277 | + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" | ||
278 | + }, | ||
279 | + "string_decoder": { | ||
280 | + "version": "1.3.0", | ||
281 | + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", | ||
282 | + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", | ||
283 | + "requires": { | ||
284 | + "safe-buffer": "~5.2.0" | ||
285 | + } | ||
286 | + }, | ||
287 | + "tar-fs": { | ||
288 | + "version": "2.1.0", | ||
289 | + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.0.tgz", | ||
290 | + "integrity": "sha512-9uW5iDvrIMCVpvasdFHW0wJPez0K4JnMZtsuIeDI7HyMGJNxmDZDOCQROr7lXyS+iL/QMpj07qcjGYTSdRFXUg==", | ||
291 | + "requires": { | ||
292 | + "chownr": "^1.1.1", | ||
293 | + "mkdirp-classic": "^0.5.2", | ||
294 | + "pump": "^3.0.0", | ||
295 | + "tar-stream": "^2.0.0" | ||
296 | + } | ||
297 | + }, | ||
298 | + "tar-stream": { | ||
299 | + "version": "2.1.2", | ||
300 | + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.2.tgz", | ||
301 | + "integrity": "sha512-UaF6FoJ32WqALZGOIAApXx+OdxhekNMChu6axLJR85zMMjXKWFGjbIRe+J6P4UnRGg9rAwWvbTT0oI7hD/Un7Q==", | ||
302 | + "requires": { | ||
303 | + "bl": "^4.0.1", | ||
304 | + "end-of-stream": "^1.4.1", | ||
305 | + "fs-constants": "^1.0.0", | ||
306 | + "inherits": "^2.0.3", | ||
307 | + "readable-stream": "^3.1.1" | ||
308 | + } | ||
309 | + }, | ||
310 | + "through": { | ||
311 | + "version": "2.3.8", | ||
312 | + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", | ||
313 | + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" | ||
314 | + }, | ||
315 | + "unbzip2-stream": { | ||
316 | + "version": "1.4.3", | ||
317 | + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", | ||
318 | + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", | ||
319 | + "requires": { | ||
320 | + "buffer": "^5.2.1", | ||
321 | + "through": "^2.3.8" | ||
322 | + } | ||
323 | + }, | ||
324 | + "util-deprecate": { | ||
325 | + "version": "1.0.2", | ||
326 | + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", | ||
327 | + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" | ||
328 | + }, | ||
329 | + "wrappy": { | ||
330 | + "version": "1.0.2", | ||
331 | + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", | ||
332 | + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" | ||
333 | + }, | ||
334 | + "ws": { | ||
335 | + "version": "7.3.0", | ||
336 | + "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.0.tgz", | ||
337 | + "integrity": "sha512-iFtXzngZVXPGgpTlP1rBqsUK82p9tKqsWRPg5L56egiljujJT3vGAYnHANvFxBieXrTFavhzhxW52jnaWV+w2w==" | ||
338 | + }, | ||
339 | + "yauzl": { | ||
340 | + "version": "2.10.0", | ||
341 | + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", | ||
342 | + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", | ||
343 | + "requires": { | ||
344 | + "buffer-crc32": "~0.2.3", | ||
345 | + "fd-slicer": "~1.1.0" | ||
346 | + } | ||
347 | + } | ||
348 | + } | ||
349 | +} |
package.json
0 → 100644
1 | +{ | ||
2 | + "name": "shoppingcart", | ||
3 | + "version": "1.0.0", | ||
4 | + "description": "기록날짜 오후 1:30 2020-05-13", | ||
5 | + "main": "coupang.js", | ||
6 | + "scripts": { | ||
7 | + "test": "echo \"Error: no test specified\" && exit 1" | ||
8 | + }, | ||
9 | + "repository": { | ||
10 | + "type": "git", | ||
11 | + "url": "ssh://git@khuhub.khu.ac.kr:12959/2015104185/ShoppingCart.git" | ||
12 | + }, | ||
13 | + "author": "", | ||
14 | + "license": "ISC", | ||
15 | + "dependencies": { | ||
16 | + "puppeteer": "^3.3.0", | ||
17 | + "readline": "^1.3.0" | ||
18 | + } | ||
19 | +} |
-
Please register or login to post a comment