`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:
No. | Überblick | Stichwort |
---|---|---|
1 | Codierung | Python |
2 | WEB-Scraping | Selenium,chromedriver,headless-chromium |
3 | Lambda-Einstellungen | Lambda |
Umgebung | Ver. |
---|---|
macOS Catalina | 10.15.3 |
Python | 3.7.3 |
selenium | 3.141.0 |
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.
Dieser Service ist ein Pay-as-you-go-System. Bitte beachten Sie.
app/lambda_function.py
"""app/lambda_function.py
"""
import os
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
def lambda_handler(event, context):
"""lambda_handler
"""
print('event: {}'.format(event))
print('context: {}'.format(context))
headless_chromium = os.getenv('HEADLESS_CHROMIUM', '')
chromedriver = os.getenv('CHROMEDRIVER', '')
options = Options()
options.binary_location = headless_chromium
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--single-process')
options.add_argument('--disable-dev-shm-usage')
driver = webdriver.Chrome(executable_path=chromedriver, options=options)
driver.get('https://info.finance.yahoo.co.jp/fx/')
usd_jpy = driver.find_element(By.ID, 'USDJPY_top_bid').text
driver.close()
driver.quit()
return {
'status_code': 200,
'usd_jpy': usd_jpy
}
if __name__ == '__main__':
print(lambda_handler(event=None, context=None))
`Um mit Lambda arbeiten zu können, müssen Options () eingestellt werden. ``
make_upload.sh
rm upload.zip
rm -r upload/
rm -r download/
mkdir -p download/bin
curl -L https://chromedriver.storage.googleapis.com/2.41/chromedriver_linux64.zip -o download/chromedriver.zip
curl -L https://github.com/adieuadieu/serverless-chrome/releases/download/v1.0.0-55/stable-headless-chromium-amazonlinux-2017-03.zip -o download/headless-chromium.zip
unzip download/chromedriver.zip -d download/bin
unzip download/headless-chromium.zip -d download/bin
mkdir upload
cp -r download/bin upload/bin
cp app/lambda_function.py upload/
pip install -r app/requirements.txt -t upload/
cd upload/
zip -r ../upload.zip --exclude=__pycache__/* .
cd ../
rm -r upload/
rm -r download/
command_line.sh
sh make_upload.sh
--AWS-Konto erstellt --Lambda-Funktionsrolle erstellt
`Ich habe es über S3 hochgeladen, weil es 10 MB überschritten hat. ``
upload.zip
in S3 hochbin.sh
bin.zip
├── chromedriver
└── headless-chromium
Compatible Runtime-Option
und klicken Sie auf Create
Schlüssel | Wert |
---|---|
CHROMEDRIVER | /var/task/bin/chromedriver |
HEADLESS_CHROMIUM | /var/task/bin/headless-chromium |
Schlüssel | Wert |
---|---|
CHROMEDRIVER | /opt/bin/chromedriver |
HEADLESS_CHROMIUM | /opt/bin/headless-chromium |
Frequenz | Formel |
---|---|
Jeden Tag 10 Uhr:15 (UTC) | cron(15 10 * * ? *) |
Jeden Montag bis Freitag 18 Uhr:00 | cron(0 18 ? * MON-FRI *) |
8 Uhr am ersten Tag eines jeden Monats:00 | cron(0 8 1 * ? *) |
Wochentags alle 10 Minuten | cron(0/10 * ? * MON-FRI *) |
Montag bis Freitag 8 Uhr:00 bis 17 Uhr:Alle 5 Minuten bis zu 55 | cron(0/5 8-17 ? * MON-FRI *) |
Jeden ersten Montag im Monat um 9 Uhr | cron(0 9 ? * 2#1 *) |
Recommended Posts