Ein bestimmter Twitter-Bot wurde erstellt, und es wurden ohnehin Informationen zum Zugbetrieb benötigt. Aufgrund verschiedener Überlegungen fragte ich mich, ob ich die Betriebsinformationen von ** nur bestimmten Routen ** kostenlos von irgendwoher abrufen könnte. Ich fand, dass das Abkratzen von der Yahoo-Route die beste Lösung war.
Nachdem verschiedene Dinge untersucht wurden, liefert es derzeit Informationen zum Routenbetrieb
Wenn Sie dies kostenlos tun möchten, json of Eisenbahnverspätungsinformationen oder [Betriebsstatus der Yahoo-Route](https: // Transit). yahoo.co.jp/traininfo/top). Im ersteren Fall werden bundesweit verspätete Routeninformationen zurückgegeben. Danach werden die Informationen alle 10 Minuten aktualisiert ... Selbst 10 Minuten sind am Morgen tödlich.
Die letztere Yahoo-Zeile, ** Eigentlich ist der Inhalt nach der Station ** .... lol (Unerwartet unbekannt) Es gibt auch Betriebsinformationen für jede Route, und diese sind in Echtzeit genau und schnell! Dann *** Wenn Sie keine API haben, kratzen Sie sie! *** ***
Der Autor, der noch nie "su" geschabt hat, versucht zu schaben. Anscheinend wird ** "Schöne Suppe" ** verwendet ... Mal sehen, die wunderbare Suppe!
BeautifulSoup ist eine Python-Bibliothek, die Daten aus HTML- und XML-Dateien abruft. Anscheinend können Sie ** mit einem Parser nach HTML-Elementen aus dem abgerufenen HTML suchen. Ich kenne die Details nicht, also probieren wir es gleich aus!
Klicken Sie hier für die Seite, die Sie dieses Mal kratzen möchten! Betriebsstatus der Yahoo-Linie Tokaido-Linie Schauen wir uns zunächst das HTML der Seite an Wenn Sie sich den HTML-Code zum Zeitpunkt der Verzögerung ansehen, gibt es eine Fehlerklasse des dd-Tags
<div id="mdServiceStatus">
<dl>
<dt>
<span class="icnAlertLarge">[!]</span>Zugverspätung</dt>
<dd class="trouble">
<p>Aufgrund des Einflusses der Inspektion innerhalb der Utsunomiya-Linie ist die Downline(Zu Atami)Einige Züge sind verspätet.<span>(Gepostet um 09:25 am 14. Dezember)</span></p>
</dd>
</dl>
</div><!--/#mdServiceStatus-->
Wenn Sie sich jedoch den normalen HTML-Code ansehen, gibt es eine normale Klasse für das dd-Tag.
<div class="elmServiceStatus">
<dl>
<dt><span class="icnNormalLarge">[○]</span>Normale Operation</dt>
<dd class="normal">
<p>Derzeit liegen keine Informationen zu Unfällen / Verspätungen vor.</p>
</dd>
</dl>
</div>
Mit anderen Worten Bei Verzögerung: ** Trouble Class DD Tag ** Normale Zeit: ** dd Tag der normalen Klasse **
** Anhand dieses dd-Tags scheint es möglich zu sein, festzustellen, ob es sich um einen verzögerten oder einen normalen Betrieb handelt! ** Lass es uns sofort tun!
Zuerst setzen Sie schöne Suppe mit Pip
$ pip install beautifulsoup4
import requests
from bs4 import BeautifulSoup
#URL des Betriebsstatus der Tokaido-Leitung
ToukaidouLine_URL = 'https://transit.yahoo.co.jp/traininfo/detail/27/0/'
#Holen Sie sich Webseiten mit Requests
ToukaidouLine_Requests = requests.get(ToukaidouLine_URL)
#Analysieren Sie Webseiten mit BeautifulSoup
ToukaidouLine_Soup = BeautifulSoup(ToukaidouLine_Requests.text, 'html.parser')
#.Finden Sie das Trouble Class DD-Tag mit find
if ToukaidouLine_Soup.find('dd',class_='trouble'):
message = 'Tokaido-Linie ist verzögert'
else:
message = 'Die Tokaido-Leitung ist normal'
print(message)
Ausführungsergebnis
Tokaido-Linie ist verzögert
Ist es nicht wirklich einfach? ?? Das Einbringen von Informationen von der Webseite ist ein wahr gewordener Traum! Spätere Geschichte: Als ich es Yahoo Leuten zeigte, war es ein Geheimnis, dass mir gesagt wurde: "Es ist eine Grauzone."
Recommended Posts