Heroku + Selenium + Chrome으로 웹 프로세스 자동화
12321 단어 경 6chromedriverChrome파이썬셀레늄
Heroku + Selenium + Chrome으로 웹 프로세스 자동화
Heroku + Selenium + Chrome으로 웹 프로세스 자동화
소개
Mac 환경의 기사입니다만, Windows 환경도 같은 순서가 됩니다. 환경 의존 부분을 읽어보십시오.
목적
이 기사를 끝까지 읽으면 다음을 할 수 있습니다.
WEBプロセスの自動化
Yahoo! Finance의 FX 차트 레이트로부터 미국 달러/엔을 취득해 표시한다.
브라우저에서 수동으로 표시
자동으로 취득한 데이터 표시
관련 기사
실행 환경
환경
Ver.
macOS Mojave
10.14.6
파이썬
3.7.3
Flask
1.1.1
selenium
3.141.0
chromedrive
78.0.3904.70
google-chrome
78.0.3904.97
소스 코드
실제로 구현 내용이나 소스 코드를 쫓으면서 읽으면 더 이해가 깊어질까 생각합니다. 부디 활용해 주세요.
GitHub
시나리오 및 전제 조건
자동 프로세스 작성
Python API 구성
tree.sh
python-Selenium
├── fx_rate
│ ├── __init__.py
│ └── utility.py
└── main.py
API 메인프레임
main.py
import datetime
import logging
import os
from flask import Flask
from fx_rate.utility import get_fx_rate
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
app = Flask(__name__)
@app.route('/fx-rate', methods=['GET'])
def get():
usd_jpy = get_fx_rate()
res = 'timestamp={}, USDJPY={}'.format(
datetime.datetime.utcnow() + datetime.timedelta(hours=9), usd_jpy)
logger.info(res)
return res, 200
if __name__ == '__main__':
host = os.getenv('HOST', '0.0.0.0')
port = int(os.getenv('PORT', 5000))
app.run(host=host, port=port, debug=True)
FX 레이트 획득
utility.py
import datetime
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
def get_fx_rate():
options = Options()
options.add_argument('--headless')
driver = webdriver.Chrome(options=options)
driver.get('https://info.finance.yahoo.co.jp/fx/')
usd_jpy = driver.find_element(By.ID, 'USDJPY_top_bid').text
driver.quit()
return usd_jpy
if __name__ == '__main__':
usd_jpy = get_fx_rate()
print('timestamp={}, USDJPY={}'.format(datetime.datetime.utcnow() +
datetime.timedelta(hours=9), usd_jpy))
Heroku 설정
Chrome 및 Driver 설정
Settings > Buildpacks 섹션의 Add buildpack에서 다음을 추가합니다.
빌드 팩
URL
chromedrive
htps : // 기주 b. 이 m / 헤로 쿠 / 헤로 쿠-부이 LD 파크 - ch 로메 dri ゔ ぇ r. 기 t
google-chrome
htps : // 기주 b. 이 m / 헤로 쿠 / 헤로 쿠-부이 ld 빠 쿠 - 오 ぇ - ch 로메. 기 t
Herokuへデプロイすると自動でインストールされます。事前にご登録ください。すでにデプロイ済みやソースコードを変更せずに再デプロイする場合は、以下の空コミットをお試しください。
allow_empty.sh
~$ git commit --allow-empty -m "allow empty commit"
~$ git push heroku master
드라이버 버전 설정
일반적으로 설정이 필요하지 않습니다. Chrome이 버전을 업그레이드했을 때와 같이 chromedrive와 google-chrome에서 버전이 다른 경우 chromedrive 버전을 지정해야 합니다.
KEY 및 VALUE를 입력하고 추가를 클릭합니다.
KEY
VALUE
CHROMEDRIVER_VERSION
지원 버전(예: 78.0.3904.70)
Reference
이 문제에 관하여(Heroku + Selenium + Chrome으로 웹 프로세스 자동화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nsuhara/items/76ae132734b7e2b352dd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)