`Ceci est un article sur l'environnement Mac, mais la procédure est la même pour l'environnement Windows. Veuillez lire et essayer la partie dépendant de l'environnement. ''
Après avoir lu cet article jusqu'au bout, vous pourrez:
No. | Aperçu | mot-clé |
---|---|---|
1 | codage | Python |
2 | Grattage WEB | Selenium,chromedriver,headless-chromium |
3 | Paramètres Lambda | Lambda |
environnement | Ver. |
---|---|
macOS Catalina | 10.15.3 |
Python | 3.7.3 |
selenium | 3.141.0 |
Je pense que vous pouvez approfondir votre compréhension en suivant réellement le contenu de l'implémentation et le code source. Veuillez l'utiliser par tous les moyens.
Ce service est un système de paiement à l'utilisation. Notez s'il vous plaît.
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))
`Pour fonctionner avec Lambda, il est nécessaire de définir Options (). ''
chromedriver
et headless-chrome
en fonction de votre environnement.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
--Compte AWS créé
`Je l'ai téléchargé via S3 car il dépassait 10 Mo. ''
dans
Uploadet cliquez sur
Save``bin
de ʻupload.zip` et créez un zip avec bin seulbin
dans Layers
Layers
à la fonction Lambda pour télécharger ʻupload.zip
bin
de ʻupload.zip` et créez un zip avec bin seulbin.sh
bin.zip
├── chromedriver
└── headless-chromium
bin
dans Layers
nom
et sélectionnez
bin.zip`Layers
à la fonction Lambdanom bin.zip
enregistré dans Calques et cliquez sur Ajouter
pour télécharger ʻupload.zip
Clé | valeur |
---|---|
CHROMEDRIVER | /var/task/bin/chromedriver |
HEADLESS_CHROMIUM | /var/task/bin/headless-chromium |
Clé | valeur |
---|---|
CHROMEDRIVER | /opt/bin/chromedriver |
HEADLESS_CHROMIUM | /opt/bin/headless-chromium |
Designer
de la fonction Lambda et cliquez sur Ajouter un déclencheur
CloudWatch Events / EventBridge
cron (0 17? * MON-FRI *)
et cliquez sur ʻAjouter`la fréquence | formule |
---|---|
10h tous les jours:15 (UTC) | cron(15 10 * * ? *) |
Du lundi au vendredi à 18 h:00 | cron(0 18 ? * MON-FRI *) |
8 h le premier jour de chaque mois:00 | cron(0 8 1 * ? *) |
Toutes les 10 minutes en semaine | cron(0/10 * ? * MON-FRI *) |
8h du lundi au vendredi:00 à 17 h:Toutes les 5 minutes jusqu'à 55 | cron(0/5 8-17 ? * MON-FRI *) |
9h le premier lundi de chaque mois | cron(0 9 ? * 2#1 *) |
Recommended Posts