`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 surSave``bin de ʻupload.zip` et créez un zip avec bin seulbin dans LayersLayers à la fonction Lambda pour télécharger ʻupload.zipbin de ʻupload.zip` et créez un zip avec bin seulbin.sh
bin.zip
├── chromedriver
└── headless-chromium
bin dans Layersnom 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éclencheurCloudWatch Events / EventBridgecron (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