1_ Erhalten Sie den Betriebsstatus von JR West 2_ Holen Sie sich eine Route mit einer Verzögerung 3_ Ausgabe Machen.
[Betriebsstatusquelle] http://trafficinfo.westjr.co.jp/list.html
Nur der Betriebsstatus wird mit xpath von HTML abgerufen. Ich habe hier lxml verwendet. Es ist nicht besonders schwierig, also zum Schaben? Kann genau richtig für Sie sein. Es sieht auch aus wie ein iPhone, wenn ein Benutzeragent darauf zugreift. Da es als Argument empfangen wird, kann es frei geändert werden. Wenn es keine Verzögerung gibt, beendet die Funktion den Prozess so wie er ist, ohne zurückzukehren (weil es ist, wenn body :).
Beispiel ausgeben
[01:26 Aktueller Betriebszustand]
China Bereich:Es gibt eine Verzögerung usw.
Code
GET_JR_INFO.py
#coding: utf-8
import urllib2, lxml.html
from datetime import datetime
def GET_info(user_agent):
headers = {'User-Agent': user_agent}
root = lxml.html.fromstring(urllib2.urlopen(urllib2.Request("http://trafficinfo.westjr.co.jp/list.html", None, headers)).read())
list_data = []
list_data.append("[{}]".format("".join([i.text for i in root.xpath('//*[@id="contents"]/div[1]/h1')]).encode("utf-8")))
for i in range(1, 7):
path_status = '//*[@id="contents"]/div[2]/ul/li[%d]/span[3]' % i
path_name = '//*[@id="contents"]/div[2]/ul/li[%d]/span[1]' % i
if not "Es gibt keine Verzögerungsinformationen." in "".join([i.text for i in root.xpath(path_status)]).encode("utf-8"):
body = "{}: {}".format(
"".join([i.text for i in root.xpath(path_name)]).encode("utf-8"),
"".join([i.text for i in root.xpath(path_status)]).encode("utf-8"))
list_data.append(body)
if body:
return list_data
if __name__ == "__main__":
print "\n".join(GET_info(
user_agent="Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25"
))
Recommended Posts