Dies ist ein Artikel über die Mac-Umgebung, aber die Vorgehensweise ist für die Windows-Umgebung dieselbe. Bitte lesen und probieren Sie den umweltabhängigen Teil.
Nachdem Sie diesen Artikel bis zum Ende gelesen haben, können Sie:
Webprozessautomatisierung
Erhalten und anzeigen Sie ** USD / JPY ** aus dem FX-Chart-Kurs von Yahoo! Finance.
Manuell über den Browser anzeigen | Automatisch erfasste Daten anzeigen |
---|---|
Umgebung | Ver. |
---|---|
macOS Mojave | 10.14.6 |
Python | 3.7.3 |
Flask | 1.1.1 |
selenium | 3.141.0 |
chromedrive | 78.0.3904.70 |
google-chrome | 78.0.3904.97 |
Ich denke, dass Sie Ihr Verständnis vertiefen können, indem Sie den Implementierungsinhalten und dem Quellcode tatsächlich folgen. Bitte benutzen Sie es auf jeden Fall.
tree.sh
python-Selenium
├── fx_rate
│ ├── __init__.py
│ └── utility.py
└── main.py
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)
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))
Fügen Sie Folgendes unter ** Buildpack hinzufügen ** im Abschnitt Einstellungen> Buildpacks hinzu.
Buildpack | URL |
---|---|
chromedrive | https://github.com/heroku/heroku-buildpack-chromedriver.git |
google-chrome | https://github.com/heroku/heroku-buildpack-google-chrome.git |
`Wenn Sie auf Heroku bereitstellen, wird es automatisch installiert. Bitte melden Sie sich im Voraus an. Wenn Sie bereits bereitgestellt haben oder erneut bereitstellen möchten, ohne den Quellcode zu ändern, versuchen Sie das leere Commit unten. ``
allow_empty.sh
~$ git commit --allow-empty -m "allow empty commit"
~$ git push heroku master
Normalerweise ist keine Einstellung erforderlich. Wenn die Versionen von ** chromedrive ** und ** google-chrome ** unterschiedlich sind, z. B. wenn Chrome aktualisiert wird, müssen Sie die Version von ** chromedrive ** angeben.
KEY | VALUE |
---|---|
CHROMEDRIVER_VERSION | Unterstützte Version(Beispiel: 78.0.3904.70) |