[Django Install] Selenium Standalone Server Install & Crawling Python Test

[Selenium Standalone Server 설치]

cd

mkdir xvfb
mkdir xvfb/bin
mkdir xvfb/tar
mkdir xvfb/jar
mkdir xvfb/logs

mkdir aicrawler
mkdir aicrawler/bin
mkdir aicrawler/logs


# jdk 1.8 설치 


sudo apt-get update 

sudo apt-get install openjdk-8-jdk


# xvfb 설치


sudo apt-get install -y unzip xvfb libxi6 libgconf-2-4 



#구글 크롬설치 (아래는 루트 권한으로 실행해야 합니다.)


sudo curl -sS -o - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add

sudo touch /etc/apt/sources.list.d/google-chrome.list

sudo chmod 777 /etc/apt/sources.list.d/google-chrome.list

sudo echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list 

sudo apt-get -y update 

sudo apt-get -y install google-chrome-stable


#자신의 크롬 버젼에 맞는 최신 크롬드라이버 주소를 찾아 다운로드 받습니다. 


google-chrome --version (구글크롬 버전 확인)

https://sites.google.com/a/chromium.org/chromedriver/downloads (여기서 버전 확인하고 아래에 버전을 맞춘다.)


cd $HOME/xvfb/tar

wget https://chromedriver.storage.googleapis.com/83.0.4103.39/chromedriver_linux64.zip 

unzip chromedriver_linux64.zip 


#다운로드 받은 크롬드라이버를 이동하고 실행 권한 주기 


sudo mv chromedriver /usr/bin/chromedriver 

sudo chown root:root /usr/bin/chromedriver 

sudo chmod +x /usr/bin/chromedriver


#Remote Selenium WebDrivers 를 실행하기위한 jar 파일 다운로드 


cd $HOME/xvfb/jar

wget https://selenium-release.storage.googleapis.com/3.13/selenium-server-standalone-3.13.0.jar

mv selenium-server-standalone-3.13.0.jar selenium-server-standalone.jar


#셀레니움 스탠드얼론 서버 시작


cd $HOME/xvfb/bin

vi $HOME/xvfb/bin/xvfb.sh (아래 내용 추가)

# 아래 내용 시작

nohup xvfb-run java -Dwebdriver.chrome.driver=/usr/bin/chromedriver -jar /home/ubuntu/xvfb/jar/selenium-server-standalone.jar  >> /home/ubuntu/xvfb/logs/xvfb.log &

# 아래 내용 종료


chmod 777 $HOME/xvfb/bin/xvfb.sh



# xvfb.sh 수행 시 3개의 프로세스가 실행됨


ubuntu   17578     1  0 04:56 pts/0    00:00:00 /bin/sh /usr/bin/xvfb-run java -Dwebdriver.chrome.driver=/usr/bin/chromedriver -jar /home/ubuntu/xvfb/jar/selenium-server-standalone.jar

ubuntu   17589 17578  0 04:56 pts/0    00:00:00 Xvfb :99 -screen 0 640x480x16 -nolisten tcp -auth /tmp/xvfb-run.HhP4Jr/Xauthority

ubuntu   17592 17578 19 04:56 pts/0    00:00:00 java -Dwebdriver.chrome.driver=/usr/bin/chromedriver -jar /home/ubuntu/xvfb/jar/selenium-server-standalone.jar



# 프로세스 확인 shell 작성


vi $HOME/xvfb/bin/ps.sh (아래 내용 추가)


# 아래 내용 시작

ps -ef | grep xvfb

# 아래 내용 종료


chmod 777 $HOME/xvfb/bin/ps.sh


vi $HOME/xvfb/bin/net.sh (아래 내용 추가)


# 아래 내용 시작

netstat -ntlp | grep :4444

# 아래 내용 종료


chmod 777 $HOME/xvfb/bin/net.sh



#Headless ChromeDriver 시작 


chromedriver --url-base=/wd/hub 


#파이썬에서 셀레니움 실행 테스트 


vi $HOME/xvfb/bin/test.py (아래 내용 추가)


# 아래 내용 시작

from selenium import webdriver 

from selenium.webdriver.common.desired_capabilities import DesiredCapabilities 


driver = webdriver.Remote('http://127.0.0.1:4444/wd/hub', DesiredCapabilities.CHROME) 

driver.get("https://www.naver.com") 


print(driver.page_source)


driver.close()   # chrome driver close (중요!!!)

driver.quit()  # chrome driver quit (중요!!!)

# 아래 내용 종료


python $HOME/xvfb/bin/test.py



[Selenium Client Install]


파이썬 3.6 설치
파이썬 가상화 환경 설치

pip install mysqlclient
pip install selenium
pip install bs4
pip install lxml
pip install pandas
pip install requests
pip install pymysql
pip install sqlalchemy

[crontab]

crontab -l (crontab 리스트 확인)

crontab -e (crontab 등록/수정, 수정 후 ctrl + x 저장 후 종료)
0 */2 * * * bash /home/ubuntu/aicrawler/bin/c_yt_univ_all_cron.sh (두시간에 한번씩 실행)

cat /var/log/syslog | grep CRON (crontab Log 확인)


c_yt_univ_all_cron.sh (아래 내용 추가)
# 아래 내용 시작

#! /bin/bash

source /home/ubuntu/.virtualenvs/aicrawler/bin/activate

python /home/ubuntu/aicrawler/bin/c_yt_univ.py >> /home/ubuntu/aicrawler/logs/c_yt_univ.log

# 아래 내용 종료


댓글

이 블로그의 인기 게시물

[Django Install] 9.1 sc제일은행 nginx-django 연결

[Django APP] django-widget-tweaks

[Django App] django-user-agents