Obtenez un billet pour un parc à thème avec python

Contexte

Un parc à thème où les réservations sont nécessaires pour les billets en raison de la récente propagation de maladies infectieuses! Maintenant, je ne peux pas obtenir le passeport de mes rêves sans regarder mon ordinateur ou mon smartphone toute la journée et frapper l'URL à plusieurs reprises.

J'ai donc pensé que c'était le bon moment pour pratiquer le grattage frustré, alors j'ai essayé d'utiliser le grattage pour obtenir mon passeport aussi facilement que possible.

Que faire

Vous pouvez voir à quel point il est difficile d'obtenir un passeport Dreamland sur le site ici.

Le premier obstacle est que l 'URL qui apparaît sur Internet saute à la page que la page actuelle ne peut pas être ouverte en raison d'un accès excessif.

Tout d'abord, dans le but de surmonter ce point, nous allons mettre en œuvre un programme qui accède à cette URL toutes les secondes et nous contacte car il est facile de se connecter à notre adresse e-mail lorsque nous pouvons y accéder.

environnement

Exécutez sur python3. Toutes les bibliothèques dépendantes devraient pouvoir être installées avec pip3, donc si vous ne l'avez pas encore installé

$pip3 install hoge

L'environnement doit être prêt.

la mise en oeuvre

main.py


import requests
from bs4 import BeautifulSoup
import time
import gmail
for i in range(100000):
	urlName = "https://reserve.tokyodisneyresort.jp/ticket/search/"
	url = requests.get(urlName)
	soup = BeautifulSoup(url.content, "html.parser")
	title = soup.find("h1").text
	print(i)
	if(title!="Avis de Tokyo Disney Resort"):
		print("SUCEED!")
		gmail.send()
		print(soup)#Sortie de toutes les informations
		break
	print("FAILURE")
	time.sleep(1)

Étant donné que gmail est un script décrit plus tard, aucune installation n'est requise.

Vérifiez le flux ici. Tout d'abord, accédez au lien dans une boucle longue ou infinie, et si le titre est "Avis d'un certain parc à thème", l'accès échoue, alors réessayez. Si le titre est un autre titre, l'accès est réussi, envoyez gmail. Il se termine par cracher toutes les informations HTML du site.

Ici, je veux faire une automatisation complète à l'avenir, donc les informations HTML sont sorties en standard.

Ensuite, écrivez un script pour envoyer Gmail.

gmail.py


import smtplib
from email.mime.text import MIMEText
from email.utils import formatdate

def send():
	FROM_ADRESS = "Hydromel du côté de l'envoi de courrier"
	PASSWORD = "Mot de passe de l'expéditeur du courrier"
	TO_ADRESS = "Mail du destinataire"
	smtpobj = smtplib.SMTP('smtp.gmail.com', 587)
	smtpobj.ehlo()
	smtpobj.starttls()
	smtpobj.ehlo()
	smtpobj.login(FROM_ADRESS, PASSWORD)

	#Décrivez le contenu de l'e-mail
	msg = MIMEText('https://reserve.tokyodisneyresort.jp/ticket/search/')
	msg['Subject'] = 'EASY TO ACCESS NOW!'
	msg['From'] = FROM_ADRESS
	msg['To'] = TO_ADRESS
	msg['Date'] = formatdate()
	smtpobj.sendmail(FROM_ADRESS,TO_ADRESS,msg.as_string())
	smtpobj.close()

Implémenté pour que l'URL d'achat du ticket puisse être envoyée lorsque send () est lu avec le code minimum requis. Une chose à garder à l'esprit ici est que gmail.send () ne fonctionnera pas à moins que l'expéditeur de l'e-mail ne soit autorisé à accéder à partir d'une application non sécurisée dans les paramètres de sécurité de Gmail. Vous devez modifier le paramètre pour autoriser avant de le déplacer (ce n'est pas autorisé par défaut)

Comment bouger

Si vous copiez et collez tout le code et enregistrez-le dans le même répertoire que main.py, gmail.py

$python3 main.py

Doit être exécuté en.

à partir de maintenant

J'aimerais étudier le scraping avec python dans le but de rendre les achats entièrement automatiques en utilisant les informations HTML obtenues par ce programme.

Recommended Posts

Obtenez un billet pour un parc à thème avec python
Obtenez un jeton pour conoha avec python
[Python] Récupérez les fichiers dans le dossier avec Python
Créer un LINE BOT avec Minette pour Python
Procédure de création d'un LineBot réalisé avec Python
Commandes pour créer un environnement python3 avec virtualenv
Obtenez date avec python
Zubu amateur veut démarrer Python
Obtenez un environnement de développement Python rapide avec Poetry
[Introduction à Python] Comment obtenir l'index des données avec l'instruction for
Obtenez des données financières avec python (puis un peu de bricolage)
Créez un environnement python pour chaque répertoire avec pyenv-virtualenv
Enregistrez des tickets avec l'API de Redmine en utilisant des requêtes Python
Créer une couche pour AWS Lambda Python dans Docker
Python: obtenir une liste de méthodes pour un objet
Obtenez la chronologie Twitter avec Python
Obtenez des données Youtube avec python
Faites une loterie avec Python
Obtenir l'ID de thread avec python
Commencez avec Python! ~ ② Grammaire ~
Obtenez des stocks avec Python
Créer un répertoire avec python
Obtenir le répertoire personnel avec python
Obtenir un événement de clavier avec python
Obtenez des informations sur l'alambic avec Python
Recommandation de django, wagtail ~ Pourquoi développer un site web avec python ~
Créer un compte enfant de connect with Stripe en Python
Expérimentez pour créer un PDF indépendant pour Kindle avec Python
Procédure d'installation pour Python et Ansible avec une version spécifique
Obtenez une liste des livres électroniques DMM achetés avec Python + Selenium
Un exemple pour dessiner des points avec PIL (Python Imaging Library).
Créez un Twitter BOT avec le SDK GoogleAppEngine pour Python
Obtenez un environnement de développement Python propre avec pyenv + pipx + Poetry
Obtenez des données de l'API d'analyse avec le client API Google pour python
Bibliothèque pour spécifier un serveur de noms en python et dig
Tourner un tableau de chaînes avec une instruction for (Python3)
[Python] Créer un écran pour le code d'état HTTP 403/404/500 avec Django
Obtenez une liste des métriques CloudWatch et une table de correspondance des unités unitaires avec Python boto
Résoudre ABC163 A ~ C avec Python
Faites fonctionner l'imprimante de reçus avec python
Manuel de graphisme Python avec Matplotlib.
Commencez avec Python! ~ ① Construction de l'environnement ~
Lien pour commencer avec python
Obtenez des avis avec l'API googlemap de python
Faisons une interface graphique avec python.
Résoudre ABC166 A ~ D avec Python
Premiers pas avec Python pour les classes PHPer
Obtenez la météo avec les requêtes Python
Créez un environnement virtuel avec Python!
Obtenez une capture d'écran Web avec python
Obtenez la météo avec les requêtes Python 2
[Python] Obtenez des données économiques avec DataReader
J'ai fait une loterie avec Python.
Créer un environnement virtuel avec Python 3
Comment démarrer avec Python
Résoudre ABC168 A ~ C avec Python
Créer un système de recommandation avec python
[Petite histoire] Obtenez l'horodatage avec Python
[Python] Générer un mot de passe avec Slackbot
Résoudre ABC162 A ~ C avec Python
Obtenez les tendances Qiita avec le scraping Python