728x90
반응형

 

1. 제 어느정도 세팅했으니 selenium 을 사용해보자. 먼저 설치한다.

$ npm install --save @types/selenium-webdriver selenium-webdriver

 

2. 크롬드라이버의 위치를 .env 파일에 추가해준다. ( 환경 변수 설정 )

/.env

CHROMEDRIVER_PATH="C:\\Users\\Administrator\\Downloads\\chromedriver_win32\\chromedriver.exe"

 

3. one.ts 라우터 파일에 다음과 같이 현재 주소를 가져오는 로직을 구성해준다.

/routers/one.ts

import express, { Request, Response, NextFunction } from 'express';
var router = express.Router();

// middlewares
import { httpLoggingMiddleware } from '../middlewares'

// logger
import {
    loggerHttp,
    loggerDebug,
    loggerError,
    loggerInfo 
    } from '../config/winston';

// selenium
import webdriver from 'selenium-webdriver'
import chrome from 'selenium-webdriver/chrome'

router.get('/',httpLoggingMiddleware, async function (req: Request, res: Response, next: NextFunction) {
    try {
        // 웹드라이버 설정
        let driver = await new webdriver.Builder()
        .forBrowser('chrome')
        .setChromeOptions(new chrome.Options().windowSize({width: 1920, height: 1080}))
        .setChromeService(new chrome.ServiceBuilder(process.env.CHROMEDRIVER_PATH))
        .build()

        // 브라우저에 접속
        await driver.get('https://typo.tistory.com/')

        // 현재 주소 가져오기
        const text = await driver.getCurrentUrl();

        // 현재 주소 출력
        console.log(text)

        res.send({success: true, result : text});
    }
    catch(Err) {
        logger.error(JSON.stringify(Err))
        console.log(Err)
        res.send({success: false, result : Err})
    }
});

export default router;

 

4. 서버를 실행하고 localhost:1234/one 로 접속한다.

정상적으로 뜨는 것을 확인할 수 있다.

728x90
반응형

+ Recent posts