Personnellement, j'utilise souvent le Cycle communautaire Chuo-ku. Actuellement, Expérience de partage de vélos sur une large zone est en cours, et 4 quartiers (Chuo Ward, Chiyoda Ward, Minato Ward) ・ C'est un cycle de location très pratique qui vous permet de faire des allers-retours librement entre (Koto Ward) et de le rendre à un port cyclable différent de celui que vous avez loué.
Vous pouvez vérifier "quand, où, où en êtes-vous?" Sur le Web, mais je voulais automatiser cela, alors je l'ai fait avec Python3 + BeautifulSoup4 + Selenium + Firefox. Il a été confirmé qu'il fonctionne dans un environnement Windows. (Pour le moment, je me suis inscrit à Chuo Ward, donc c'est un script pour les inscrits Chuo Ward)
docomo-cycle.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import urllib.request
from bs4 import BeautifulSoup
import time
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.by import By
import csv
MEMBERID = "(Mon ID utilisateur)"
PASSWORD = "(Mon mot de passe)"
driver = webdriver.Firefox()
driver.get("https://tcc.docomo-cycle.jp/cycle/TYO/cs_web_main.php?AreaID=2")
mid = driver.find_element_by_name('MemberID')
mid.send_keys(MEMBERID)
password = driver.find_element_by_name('Password')
password.send_keys(PASSWORD)
password.send_keys(Keys.RETURN)
obj1 = WebDriverWait(driver,5).until(
EC.presence_of_element_located((By.PARTIAL_LINK_TEXT, "Billing")))
obj1.click()
time.sleep(3)
data = driver.page_source.encode('utf-8')
soup = BeautifulSoup(data, "html.parser")
table = soup.findAll("table",{"class":"rnt_ref_table"})[0]
rows = table.findAll("tr")
csvFile = open("docomo-cycle.csv", 'wt', newline='', encoding='utf-8')
writer = csv.writer(csvFile)
try:
for row in rows:
csvRow = []
for cell in row.findAll(['td', 'th']):
csvRow.append(cell.get_text().replace('\n',''))
writer.writerow(csvRow)
finally:
csvFile.close()
driver.close()
Lorsque le script ci-dessus est exécuté, l'historique d'utilisation sera affiché sous la forme docomo-cycle.csv. C'est comme ça.
docomo-cycle.csv
1,2016/5/2 07:22,B3-01.Bureau B3 du quartier Chuo-01.Chuo City Office,→,2016/5/2 07:35,A3-02.Boutique Casa Nova (bâtiment Kaede) A3-02.CASA NOUVA SHOP(Kaede Building)
2,2016/5/2 18:29,A3-02.Boutique Casa Nova (bâtiment Kaede) A3-02.CASA NOUVA SHOP(Kaede Building),→,2016/5/2 18:50,B4-03.Sentier des cerisiers en fleurs (devant Harumi Triton Square) B4-03.Sakura no sanpomichi(In front of Harumi Triton Square)
3,2016/5/5 21:32,B3-03.Ginza 6-chome-CARRÉ (Kiboricho-dori) B3-03.Ginza 6-chome SQUARE(Kobikicho Dori),→,2016/5/5 21:48,B4-03.Sentier des cerisiers en fleurs (devant Harumi Triton Square) B4-03.Sakura no sanpomichi(In front of Harumi Triton Square)
4,2016/5/6 07:28,B4-03.Sentier des cerisiers en fleurs (devant Harumi Triton Square) B4-03.Sakura no sanpomichi(In front of Harumi Triton Square),→,2016/5/6 07:41,B2-02.Yanagi-dori (devant Tokyo Square Garden) B2-02.Yanagi-dori St. (In front of TOKYO SQUARE GARDEN)
5,2016/5/8 05:00,B4-03.Sentier des cerisiers en fleurs (devant Harumi Triton Square) B4-03.Sakura no sanpomichi(In front of Harumi Triton Square),→,2016/5/8 05:08,H1-02.Station Toyosu H1-02.Toyosu Station
6,2016/5/9 07:25,B4-03.Sentier des cerisiers en fleurs (devant Harumi Triton Square) B4-03.Sakura no sanpomichi(In front of Harumi Triton Square),→,2016/5/9 07:48,A3-02.Boutique Casa Nova (bâtiment Kaede) A3-02.CASA NOUVA SHOP(Kaede Building)
7,2016/5/10 08:18,B4-03.Sentier des cerisiers en fleurs (devant Harumi Triton Square) B4-03.Sakura no sanpomichi(In front of Harumi Triton Square),→,2016/5/10 08:40,A3-02.Boutique Casa Nova (bâtiment Kaede) A3-02.CASA NOUVA SHOP(Kaede Building)
Du point de vue "automatique", il est inutile de démarrer Firefox et de changer d'écran, donc j'aimerais utiliser PhantomJS ou quelque chose pour le faire fonctionner en silence. Ensuite, cron ou quelque chose comme le scraping à temps, ou l'ajout automatique à une feuille de calcul Google. .. ..
・ "Web Scraping with Python" O'Reilly Japan, ISBN978-4-87311-761-4 -Pour la conversion de fichier CSV, j'ai fait référence à this.
Même dans les cycles communautaires autres que Chuo-ku, Tokyo, il semble qu'ils soient gérés par le même système, vous pourrez donc peut-être faire de même en réécrivant l'URL dans la ligne ** driver.get ** au contenu suivant.
・ Koto Ward https://tcc.docomo-cycle.jp/cycle/TYO/cs_web_main.php?AreaID=4 ・ Quartier Chiyoda https://tcc.docomo-cycle.jp/cycle/TYO/cs_web_main.php?AreaID=1 · Minato-ku https://tcc.docomo-cycle.jp/cycle/TYO/cs_web_main.php?AreaID=3 · Yokohama https://tcc.docomo-cycle.jp/cycle/YKH/cs_web_main.php ・ Sendai https://tcc.docomo-cycle.jp/cycle/SND/cs_web_main.php · Hiroshima https://tcc.docomo-cycle.jp/cycle/HRS/cs_web_main.php ・ Préfecture de Kanagawa Ouest https://tcc.docomo-cycle.jp/cycle/KNS/cs_web_main.php ・ Koshu https://tcc.docomo-cycle.jp/cycle/KSH/cs_web_main.php ・ Kobe https://tcc.docomo-cycle.jp/cycle/kob/cs_web_main.php
Recommended Posts