Grattage avec Python + Selenium pour ajouter des produits Apple reconditionnés à votre panier et notifier en ligne

introduction

Produit reconditionné certifié peut être l'une des options pour acheter un Mac, etc. à un prix inférieur au prix catalogue. Vous pouvez acheter un produit qui a l'air neuf à un prix d'environ 15%, mais s'il s'agit d'un produit populaire, il se vendra rapidement. Afin de ne pas rater une opportunité, nous avons mis en place une programmation pour rechercher le produit souhaité par programmation, l'ajouter au panier, et le notifier par ligne.

Code réel

Corps

Accédez à la page cible → Aller à l'URL contenant la chaîne de caractères spécifiée → Processus de connexion → Ajouter au panier → Notifier par ligne → Enregistrer le nom du produit. Il existe de nombreuses explications sur le sélénium, je les omettrai donc dans cet article. Selenium Remplacez * hoge * par le caractère réel.

AppleUsedSearch.py


from selenium import webdriver
from selenium.webdriver.common.by import By
from line_notify_bot import LINENotifyBot

bot = LINENotifyBot(access_token='hoge')

options = webdriver.ChromeOptions()

options.add_argument('--headless')
driver = webdriver.Chrome(options=options) 

driver.get('https://www.apple.com/jp/shop/refurbished/mac/2019') 

r = driver.find_elements_by_class_name('as-producttile-tilelink')
len = len(r)
list =[]
for i in range(len):
    r = driver.find_elements_by_class_name('as-producttile-tilelink')[i].get_attribute('data-display-name')
    list.append(r)
    if "15.MacBook Pro 2 4 pouces.2GHz" in r and "Zone grise" in r:
        detail = driver.find_elements_by_class_name('as-producttile-tilelink')[i].get_attribute("href")
        driver.get(detail)
        if driver.find_elements_by_class_name('ac-gn-bagview-nav-link ac-gn-bagview-nav-link-signIn'):
            login = driver.find_element_by_class_name('ac-gn-bagview-nav-link ac-gn-bagview-nav-link-signIn').get_attribute("href")
            driver.get('login')
            driver.find_element_by_id("loginHome.customerLogin.appleId-label").send_keys("hogehoge@gmail.com")
            driver.find_element_by_id("loginHome.customerLogin.password-label").send_keys("hogehogehoge")
            driver.find_element_by_id("signin-button-submit").click()
        driver.find_element_by_name("add-to-cart").click()
        bot.send(
            message='En stock'+r
        )
        driver.get('https://www.apple.com/jp/shop/refurbished/mac/2019') 
driver.quit()

print(list)
import pandas as pd
df = pd.Series(list)
df.to_csv("Item.csv", encoding='utf_8_sig')

Notification de ligne

Mon ancêtre a écrit un code merveilleux, alors je l'ai utilisé pendant que j'avais peur. Envoyer un message à LINE avec Python

line_notify_bot.py


import requests

class LINENotifyBot:
    API_URL = 'https://notify-api.line.me/api/notify'
    def __init__(self, access_token):
        self.__headers = {'Authorization': 'Bearer ' + access_token}

    def send(
            self, message,
            image=None, sticker_package_id=None, sticker_id=None,
            ):
        payload = {
            'message': message,
            'stickerPackageId': sticker_package_id,
            'stickerId': sticker_id,
            }
        files = {}
        if image != None:
            files = {'imageFile': open(image, 'rb')}
        r = requests.post(
            LINENotifyBot.API_URL,
            headers=self.__headers,
            data=payload,
            files=files,
            )

Résumé

En tant que premier message du projet parallèle, j'ai écrit que j'avais appris le scraping qui m'intéressait. Nous travaillerons sur la fixation des points qui ne peuvent pas être exécutés régulièrement et des points sur lesquels le code d'accès est écrit directement. Nous coderons tous les jours et enverrons des informations.

Recommended Posts

Grattage avec Python + Selenium pour ajouter des produits Apple reconditionnés à votre panier et notifier en ligne
Automatisez Chrome avec Python et Selenium sur votre Chromebook
Grattage avec Python, Selenium et Chromedriver
Pratiquer le web scraping avec Python et Selenium
Envoyer un message à LINE avec Python (LINE Notify)
Grattage avec du sélénium [Python]
Installez le sélénium sur votre Mac et essayez-le avec python
Suivi automatique sur Twitter avec python et sélénium! (RPA)
Grattage au sélénium en Python
Grattage avec Selenium + Python Partie 1
Grattage avec du sélénium en Python
IME On / Off est affiché par LED en coopération avec Python et Arduino
Python 3.6 sous Windows ... et vers Xamarin.
Scraping avec Node, Ruby et Python
Scraping avec Selenium en Python (Basic)
Grattage avec Python et belle soupe
Sélénium et python pour ouvrir Google
Installez Chrome en ligne de commande sur Sakura VPS (Ubuntu) et lancez Chrome avec python à partir de l'affichage virtuel et du sélénium
Utilisez AWS lambda pour récupérer les actualités et notifier régulièrement LINE des mises à jour [python]
Mettez Cabocha 0.68 dans Windows et essayez d'analyser la dépendance avec Python
[Yahoo! Weather Replacement Version] Comment obtenir des informations météo avec LINE Notify + Python
Connectez-vous au VPN avec votre smartphone et éteignez / rallumez le serveur
Ajouter un intervalle de confiance de 95% des deux côtés pour la figure avec Python / Matplotlib
Comment dessiner une ligne verticale sur une carte de chaleur dessinée avec Python Seaborn
Fractal pour faire et jouer avec Python
Un mémo contenant Python2.7 et Python3 dans CentOS
[Part1] Scraping avec Python → Organisez jusqu'à csv!
Ajouter du bruit gaussien aux images avec python2.7
Scraping Web facile avec Python et Ruby
J'ai essayé de faire un processus périodique avec CentOS7, Selenium, Python et Chrome
WEB grattage avec python et essayez de créer un nuage de mots à partir des critiques
Vous voulez ajouter des indices de type aux décorateurs Python?
MessagePack-Try pour lier Java et Python avec RPC
J'ai essayé le web scraping en utilisant python et sélénium
Stratégie sur la façon de monétiser avec Python Java
Essayez d'exécuter Google Chrome avec Python et Selenium
Installez OpenCV 4.0 et Python 3.7 sur Windows 10 avec Anaconda
Connectez-vous à Yahoo Business avec Selenium Python
Faites glisser et déposez un fichier local avec Selenium (Python)
Introduction à Python avec Atom (en route)
Notifier l'erreur et la fin de l'exécution par LINE [Python]
Connectez-vous à MySQL avec Python sur Raspberry Pi
J'ai essayé d'automatiser la mise à jour de l'article du blog Livedoor avec Python et sélénium.
Python> Implémentation qui synthétise 3 fichiers avec des colonnes variables et génère 3 éléments sur chaque ligne
J'ai essayé différentes choses avec Python: le grattage (Beautiful Soup + Selenium + PhantomJS) et l'analyse morphologique