Hier, j'ai écrit un article "Raclage de l'historique d'utilisation du cycle communautaire". Cet article est une continuation de cela.
Hier, j'ai démarré Firefox et gratté, mais cette fois hier "[Future](http://qiita.com/nuwaa/items/48c7e1588fb0409659ac#%E4%BB%8A%E5%] BE% 8C% E3% 81% AE% E3% 81% 93% E3% 81% A8) », j'ai essayé de soutenir PhantomJS. Quand j'ai réessayé cela, cela s'est terminé très facilement. C'est pourquoi la combinaison de Python3 + BeautifulSoup4 + Selenium + PhantomJS a été confirmée pour fonctionner dans un environnement Windows.
docomo-cycle-pjs.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.PhantomJS()
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()
Donc, la seule différence par rapport à hier est la description du pilote Web. .. .. Depuis hier
driver = webdriver.Firefox()
C'était
#### **`driver = webdriver.PhantomJS()`**
```PhantomJS()
C'est juste devenu.
Le point à noter est que "PhantomJS est correctement installé et le chemin est en place".
À propos, le résultat de l'opération du script ci-dessus est le suivant.
(Par rapport au fichier CSV d'hier, l'historique a augmenté de 2!)
#### **`docomo-cycle.csv`**
```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)
8,2016/5/10 19:26,A3-02.Boutique Casa Nova (bâtiment Kaede) A3-02.CASA NOUVA SHOP(Kaede Building),→,2016/5/10 19:48,B4-03.Sentier des cerisiers en fleurs (devant Harumi Triton Square) B4-03.Sakura no sanpomichi(In front of Harumi Triton Square)
9,2016/5/11 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/11 07:45,A3-02.Boutique Casa Nova (bâtiment Kaede) A3-02.CASA NOUVA SHOP(Kaede Building)
Le simple fait de changer Firefox en PhantomJS a rendu l'opération très rafraîchissante. Ce serait bien de faire des choses comme l'ajout automatique aux feuilles de calcul Google et le stockage de données dans des bases de données telles que MySQL.
・ "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. (Pareil qu'hier)
Recommended Posts