교육청 사이트 크롤링을 진행하던 중 사이트의 요청이 성공 하거나 실패하는 경우가 발생하였습니다.
코드는 같은데 말이죠
해당 사이트의 쿠키 값이 해당 사이트에 접속 시마다 변경되고 있는것을 확인했고 크롤링 요청에 쿠키 값을 추가해주니 문제가 발생하지 않았습니다.
그러나 쿠키 값을 요청 전에 동적으로 가져와야 하는 문제가 생겼습니다.
selenium을 사용하여 가상의 브라우저를 띄운뒤 쿠키에 직접 접근하여 전역변수에 담긴 쿠키값을 이용해 크롤링 요청을 보내게 하였습니다.
그 과정에서 ubuntu 서버에 크롬 드라이버를 설치하면서 꽤나 고생을 하여 이 기록을 남깁니다.
아래 코드를 순서대로 전부 실행하거나 원하는 내용만 실행하면 됩니다.
getChromeVersion
CHROME_DRIVER_VERSION=`curl -sS chromedriver.storage.googleapis.com/LATEST_RELEASE`
SELENIUM_STANDALONE_VERSION=3.4.0
SELENIUM_SUBDIR=$(echo "$SELENIUM_STANDALONE_VERSION" | cut -d"." -f-2)
removeCurrent
sudo apt-get remove google-chrome-stable
rm ~/selenium-server-standalone-*.jar
rm ~/chromedriver_linux64.zip
sudo rm /usr/local/bin/chromedriver
sudo rm /usr/local/bin/selenium-server-standalone.jar
installDependency
sudo apt-get update
sudo apt-get install -y unzip openjdk-8-jre-headless xvfb libxi6 libgconf-2-4
installChrome
sudo curl -sS -o - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add
sudo echo "deb 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
installChromeDriver
wget -N http://chromedriver.storage.googleapis.com/$CHROME_DRIVER_VERSION/chromedriver_linux64.zip -P ~/
unzip ~/chromedriver_linux64.zip -d ~/
rm ~/chromedriver_linux64.zip
sudo mv -f ~/chromedriver /usr/local/bin/chromedriver
sudo chown root:root /usr/local/bin/chromedriver
sudo chmod 0755 /usr/local/bin/chromedriver
installSelenium
wget -N http://selenium-release.storage.googleapis.com/$SELENIUM_SUBDIR/selenium-server-standalone-$SELENIUM_STANDALONE_VERSION.jar -P ~/
sudo mv -f ~/selenium-server-standalone-$SELENIUM_STANDALONE_VERSION.jar /usr/local/bin/selenium-server-standalone.jar
sudo chown root:root /usr/local/bin/selenium-server-standalone.jar
sudo chmod 0755 /usr/local/bin/selenium-server-standalone.jar
출처: https://github.com/gmkseta/TripadvisorCrawler
'서버' 카테고리의 다른 글
"ENOSPC: no space left on device, write" (0) | 2022.01.25 |
---|