selenium-webdriver에서 자동으로 웹 사이트에 액세스하면 액세스 로그는 어떻게됩니까?

목적



실은 몰래 사내 업무의 일부를 자동화하고 있었습니다만, 문득 서버 로그 들여다보면 자동화하고 있는 것이 들키지 않을까 생각해, 검증해 보았습니다.

검증 환경


  • 웹 서버로 PaizaCloud을 사용
  • 자동으로 액세스하는 방법으로 Selenium-webdriver 및 headless-chrome을 이용 ​​
  • 자동화하는 프로그램으로 Python을 이용

  • 했던 일



    Selenium 및 Headless Chrome 배포



    이쪽에 관해서는 많은 기사가 있으므로 할애합니다.

    웹 서버 구축



    PaizaCloud로 이동하여 로그인합니다.
    Google 계정 등으로 로그인할 수 있으며 일부 플랜은 무료로 이용할 수 있습니다. 이번에는 이 무료 플랜을 사용하고 있습니다.

    서버 만들기 화면에서 적절한 서버 이름과 설치할 응용 프로그램을 선택합니다.
    이번에는 아파치를 설치하고 있습니다.


    서버 작성 후 왼쪽의 브라우저 버튼을 클릭하면 내부 브라우저가 시작됩니다.


    물론 URL을 복사하여 다른 브라우저를 이용해도 OK입니다.
    일단, 이것으로 서버가 일어나고 있는 것을 확인할 수 있었습니다.

    서버 로그 위치 확인



    Apache 서버 로그는 기본적으로/var/log/apache2/access.log에 있습니다.
    왼쪽의 콘솔 버튼을 클릭하여 콘솔을 시작합니다.


    아래 명령을 두드려 액세스 로그를 확인해 봅니다.
    sudo tail /var/log/apache2/access.log
    

    이번에는 아직 액세스 로그가 없었습니다.

    파이썬으로 코드 작성



    main.py
    #モジュールのインポート
    from selenium import webdriver
    
    #Chromeの起動
    options = webdriver.ChromeOptions()
    driver = webdriver.Chrome(options=options)
    
    #Webサーバにリクエストを投げる
    driver.get('https://bowtin-testserver.paiza-user.cloud/')
    

    위 프로그램을 실행하면 Google 크롬이 자동으로 시작되어 웹페이지에 액세스하게 됩니다.

    액세스 로그 확인



    다시 서버 측 액세스 로그를 확인해보십시오.


    Chrome이라고 써서 이 시점에서 수동인지 자동인지 알 수 없습니다.

    Chrome 화면이 시작되지 않도록 코드를 변경하고 실행해보십시오.



    일부 코드를 추가하고 백그라운드에서 Chrome이 실행되도록 합니다.
    이제 화면에 Chrome이 표시되지 않으므로 자동화된 느낌이 나옵니다.

    main.py
    #モジュールのインポート
    from selenium import webdriver
    
    #Chromeの起動
    options = webdriver.ChromeOptions()
    options.add_argument('--headless') #追加
    options.add_argument('--disable-gpu') #追加
    driver = webdriver.Chrome(options=options)
    
    #Webサーバにリクエストを投げる
    driver.get('https://bowtin-testserver.paiza-user.cloud/')
    

    코드를 변경한 후 다시 실행합니다.

    다시 서버 로그 확인



    이번에는 브라우저의 종류가 Headless Chrome이 되어 있는 것을 확인할 수 있었습니다.



    결론


  • 아는 사람이 제대로 보면 알 수 있다
  • 좋은 웹페이지 즐겨찾기