Holen Sie sich ein Ticket für einen Themenpark mit Python

Hintergrund

Ein Themenpark, in dem aufgrund der jüngsten Verbreitung von Infektionskrankheiten Reservierungen für Tickets erforderlich sind! Jetzt kann ich meinen Traumpass nicht mehr bekommen, ohne den ganzen Tag auf meinen Computer oder mein Smartphone zu starren und die URL wiederholt zu drücken.

Also dachte ich, es sei ein guter Zeitpunkt, um das frustrierte Schaben zu üben, und versuchte, das Schaben zu verwenden, um meinen Pass so einfach wie möglich zu bekommen.

Was ist zu tun

Auf der Website hier können Sie sehen, wie schwierig es ist, einen Traumlandpass zu erhalten.

Die erste Barriere besteht darin, dass die im Internet angezeigte URL zu der Seite springt, auf der die aktuelle Seite aufgrund übermäßigen Zugriffs nicht geöffnet werden kann.

Das Ziel dieser Zeit ist es zunächst, darüber hinwegzukommen und ein Programm zu implementieren, das jede Sekunde auf diese URL zugreift und Sie kontaktiert, da es einfach ist, eine Verbindung zu Ihrer E-Mail-Adresse herzustellen, wenn Sie darauf zugreifen können.

Umgebung

Auf python3 ausführen. Alle abhängigen Bibliotheken sollten mit pip3 installiert werden können. Wenn Sie es also noch nicht installiert haben

$pip3 install hoge

Die Umgebung sollte bereit sein.

Implementierung

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!="Hinweis vom Tokyo Disney Resort"):
		print("SUCEED!")
		gmail.send()
		print(soup)#Alle Informationen ausgegeben
		break
	print("FAILURE")
	time.sleep(1)

Da Google Mail ein später beschriebenes Skript ist, ist keine Installation erforderlich.

Überprüfen Sie hier den Durchfluss. Greifen Sie zunächst in einer langen oder Endlosschleife auf den Link zu. Wenn der Titel "Hinweis von einem bestimmten Themenpark" lautet, schlägt der Zugriff fehl. Versuchen Sie es erneut. Wenn der Titel ein anderer Titel ist, ist der Zugriff erfolgreich. Senden Sie daher Google Mail. Es endet damit, dass alle HTML-Informationen der Site ausgespuckt werden.

Hier möchte ich in Zukunft eine vollständige Automatisierung durchführen, damit HTML-Informationen standardmäßig ausgegeben werden.

Schreiben Sie als Nächstes ein Skript zum Senden von Google Mail.

gmail.py


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

def send():
	FROM_ADRESS = "Mead auf der Seite des Mailversands"
	PASSWORD = "Passwort des Mail-Absenders"
	TO_ADRESS = "Mail des Empfängers"
	smtpobj = smtplib.SMTP('smtp.gmail.com', 587)
	smtpobj.ehlo()
	smtpobj.starttls()
	smtpobj.ehlo()
	smtpobj.login(FROM_ADRESS, PASSWORD)

	#Beschreiben Sie den Inhalt der 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()

Implementiert, damit die URL für den Ticketkauf gesendet werden kann, wenn send () mit dem minimal erforderlichen Code gelesen wird. Beachten Sie dabei, dass gmail.send () nur funktioniert, wenn dem Absender der E-Mail in den Sicherheitseinstellungen von Google Mail der Zugriff über eine unsichere App gewährt wird. Sie müssen die zulässige Einstellung ändern, bevor Sie sie verschieben (standardmäßig nicht zulässig).

Wie man sich bewegt

Wenn Sie den gesamten Code kopieren, einfügen und im selben Verzeichnis wie main.py, gmail.py speichern

$python3 main.py

Sollte in ausgeführt werden.

von jetzt an

Ich möchte das Scraping mit Python studieren, um Einkäufe mit den von diesem Programm erhaltenen HTML-Informationen vollautomatisch zu tätigen.

Recommended Posts

Holen Sie sich ein Ticket für einen Themenpark mit Python
Holen Sie sich ein Zeichen für Conoha mit Python
[Python] Holen Sie sich die Dateien mit Python in den Ordner
Erstellen Sie mit Minette für Python einen LINE BOT
Vorgehensweise zum Erstellen eines mit Python erstellten LineBot
Befehle zum Erstellen einer Python3-Umgebung mit virtualenv
Holen Sie sich ein Date mit Python
Zubu Amateur will Python starten
Holen Sie sich mit Poetry eine schnelle Python-Entwicklungsumgebung
[Einführung in Python] So erhalten Sie den Datenindex mit der for-Anweisung
Holen Sie sich Finanzdaten mit Python (dann ein wenig basteln)
Erstellen Sie mit pyenv-virtualenv eine Python-Umgebung für jedes Verzeichnis
Registrieren Sie Tickets mit der Redmine-API mithilfe von Python-Anforderungen
Erstellen Sie in Docker eine Ebene für AWS Lambda Python
Python: Ruft eine Liste der Methoden für ein Objekt ab
Holen Sie sich Twitter-Timeline mit Python
Holen Sie sich Youtube-Daten mit Python
Machen Sie eine Lotterie mit Python
Holen Sie sich die Thread-ID mit Python
Beginnen Sie mit Python! ~ ② Grammatik ~
Holen Sie sich Lager mit Python
Erstellen Sie ein Verzeichnis mit Python
Holen Sie sich das Home-Verzeichnis mit Python
Holen Sie sich Tastaturereignis mit Python
Holen Sie sich Alembic-Informationen mit Python
Empfehlung von Django, Bachstelze ~ Warum eine Website mit Python entwickeln ~
Erstellen Sie ein untergeordnetes Konto für die Verbindung mit Stripe in Python
Experimentieren Sie mit Python, um ein PDF für Selbstversorger für Kindle zu erstellen
Installationsverfahren für Python und Ansible mit einer bestimmten Version
Holen Sie sich eine Liste der mit Python + Selen gekauften DMM-E-Books
Ein Beispiel zum Zeichnen von Punkten mit PIL (Python Imaging Library).
Erstellen Sie einen Twitter-BOT mit dem GoogleAppEngine SDK für Python
Holen Sie sich eine saubere Python-Entwicklungsumgebung mit pyenv + pipx + Poetry
Abrufen von Daten aus der Analyse-API mit Google API Client für Python
Bibliothek zur Angabe eines Nameservers in Python und Dig
Drehen Sie ein Array von Zeichenfolgen mit einer for-Anweisung (Python3).
[Python] Erstellen Sie mit Django einen Bildschirm für den HTTP-Statuscode 403/404/500
Holen Sie sich eine Liste der CloudWatch-Metriken und eine Entsprechungstabelle der Einheiteneinheiten mit Python boto
Löse ABC163 A ~ C mit Python
Bedienen Sie den Belegdrucker mit Python
Python-Grafikhandbuch mit Matplotlib.
Beginnen Sie mit Python! ~ ① Umweltbau ~
Link, um mit Python zu beginnen
Holen Sie sich Bewertungen mit Python Googlemap API
Lassen Sie uns eine GUI mit Python erstellen.
Löse ABC166 A ~ D mit Python
Erste Schritte mit Python für PHPer-Klassen
Holen Sie sich das Wetter mit Python-Anfragen
Erstellen Sie eine virtuelle Umgebung mit Python!
Holen Sie sich Web-Screen-Capture mit Python
Holen Sie sich das Wetter mit Python-Anfragen 2
[Python] Mit DataReader Wirtschaftsdaten abrufen
Ich habe mit Python eine Lotterie gemacht.
Erstellen einer virtuellen Umgebung mit Python 3
Erste Schritte mit Python
Löse ABC168 A ~ C mit Python
Erstellen Sie ein Empfehlungssystem mit Python
[Kleine Geschichte] Holen Sie sich mit Python einen Zeitstempel
[Python] Generiere ein Passwort mit Slackbot
Löse ABC162 A ~ C mit Python
Holen Sie sich Qiita-Trends mit Python-Scraping