Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const express = require('express');
- const puppeteer = require('puppeteer');
- const fs = require('fs');
- const app = express();
- (async () => {
- const width = 1600, height = 1040;
- const option = { headless: true, slowMo: true, args: [`--window-size=${width},${height}`] };
- const browser = await puppeteer.launch(option);
- const page = await browser.newPage();
- await page.goto('https://search.shopping.naver.com/search/all.nhn?query=%EC%96%91%EB%A7%90&cat_id=&frm=NVSHATC');
- await page.waitFor(5000);
- await page.waitForSelector('ul.goods_list');
- await page.addScriptTag({url: 'https://code.jquery.com/jquery-3.2.1.min.js'});
- const naver = await page.evaluate(() => {
- const data = {
- "naver" : []
- };
- $('ul.goods_list > li._itemSection').each(function () {
- const title = $.trim($(this).find('div.info > a.tit').text());
- const price = $(this).find('div.info > .price .num').text();
- const image = $(this).find('div.img_area img').attr('src');
- data.naver.push({ title, price, image })
- });
- return data;
- });
- if (await write_file('example.json', JSON.stringify(naver)) === false) {
- console.error('Error: Unable to write stores to example.json');
- }
- await browser.close();
- })();
- const write_file = (file, data) => new Promise((resolve, reject) => {
- fs.writeFile(file, data, 'utf8', error => {
- if (error) {
- console.error(error);
- reject(false);
- } else {
- resolve(true);
- }
- });
- });
- app.listen(3000, () => console.log("Express!!!"));
Add Comment
Please, Sign In to add comment