Bài viết hướng dẫn cho mọi người (và cả mình trong tương lai) về cách setup selenium với chromedriver headless một cách hiệu quả trên AWS EC2 instance.
1. Requirements
- EC2 instance với AMI Amazon Linux 2023 hoặc Ubuntu
- Root account access vào EC2 đã có, để chạy
sudo
2. Thực hiện
- Cài đặt google-chrome:
sudo curl https://intoli.com/install-google-chrome.sh | bash
sudo mv /usr/bin/google-chrome-stable /usr/bin/google-chrome
- Do use case demo ở đây mình sẽ sử dụng Python với Selenium, các driver khác các bạn setup tương tự nhé! Cài đặt trọn gói như sau:
Thường thì máy linux (EC2) sẽ có sẵn python3.9 nên không cần cài python mà chỉ cần cài
pip
wget https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py
pip install urllib3==1.26.16
pip install selenium
-
Tạo driver theo hướng dẫn dưới đây: (recommended)
- Import thư viện:
from selenium.webdriver.chrome.options import Options from selenium import webdriver
- Tạo các options như sau:
options = Options() options.add_argument("--headless") options.add_argument("--disable-gpu") options.add_argument("--no-sandbox") options.add_argument("--disable-infobars") options.add_argument("--disable-dev-shm-usage") options.add_argument("window-size=1400,1500") options.add_argument("start-maximized") options.add_argument("enable-automation")
- Import thư viện:
driver = webdriver.Chrome(options=options)
- Test thử coi work không:
import time driver.get("https://www.python.org") time.sleep(3) print(driver.title)