본문 바로가기
Project/JavaScript

[JavaScript] 웹 스크래핑(Web Scraping) 예제(1)

by 꾸압 2022. 7. 2.

 

<설명>

Javascript 의 puppeteer 라이브러리를 활용하여 크롤링하는 기본 예제다.

여기선 puppeteer 를 사용하였다.

 


 

<코드>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
// const webcrw = require('파일 경로')
// webcrw 에서 exports 에 들어간 <key, value> 가
// require 함수의 output으로 나옴
 
// require 의 전체 구성 코드
/*
    const require = function(src) {
        let foleAsStr = readFile(src);
        let module.exports = {};
        const 'key 값' = 'value 값';
        exports.'key 값' = 'key 값';
        retrun module.exports;
    }
*/
 
const puppeteer = require("puppeteer");
 
const run = async() => {
    try {
        const browser = await puppeteer.launch({
            args: ["--no-sandbox"],
        });
        const page = await browser.newPage();
        // 크롤링 타겟 웹페이지
        const url = "https://investor.vanguard.com/etf/profile/BNDX";
        // 크롤링 타겟 section
        // browser 내 '개발자 도구(F12)' 기능인 'select an element' 를 통해 가져온 소스
        // 'select an element' 를 하고 원하는 UI를 선택하면 code source 에서 해당 코드를 선택
        const selector =
            "#overviewContainer > div.row.component-block.funds-section.component-block-margin-medium.ng-scope > div:nth-child(2) > div:nth-child(2) > div:nth-child(1) > div > table > tbody > tr:nth-child(1) > td.ng-scope.right > div > span.ng-scope.ng-binding.sceIsLayer.arrangeSec";
        
        await page.goto(url);
        await page.waitForSelector(selector);
 
        data = await page.$eval(selector, (element) => element.textContent);
 
        console.log(data);
 
        } catch(e) {
        console.log(e);
    }
};
 
run();
cs

 

 

 

 

댓글