1_ Obtenez l'état de fonctionnement de JR West 2_ Obtenir un itinéraire avec un retard 3_ sortie Faire.
[Source de l'état de fonctionnement] http://trafficinfo.westjr.co.jp/list.html
Seul l'état de l'opération est obtenu à partir de html à l'aide de xpath. J'ai utilisé lxml dans le processus ici. Ce n'est pas particulièrement difficile, est-ce pour la pratique du grattage? Peut être juste pour vous. Il ressemble également à un iPhone lorsqu'il est accédé par un agent utilisateur. Puisqu'il est reçu comme argument, il peut être modifié librement. De plus, s'il n'y a pas de retard, la fonction terminera le processus tel quel sans retour (car c'est if body :).
Exemple de sortie
[01:26 État de fonctionnement actuel]
Région de la Chine:Il y a un retard, etc.
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 "Il n'y a aucune information de retard." 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"
))