Gestern schrieb ich einen Artikel "Scraping Community Cycle Use History". Dieser Artikel ist eine Fortsetzung davon.
Zur Zeit von gestern habe ich Firefox gestartet und gekratzt, aber diesmal die "[Zukunft] von gestern (http://qiita.com/nuwaa/items/48c7e1588fb0409659ac#%E4%BB%8A%E5%] BE% 8C% E3% 81% AE% E3% 81% 93% E3% 81% A8) “, versuchte ich PhantomJS zu unterstützen. Als ich es erneut versuchte, war es sehr einfach zu erledigen. Aus diesem Grund wurde bestätigt, dass die Kombination aus Python3 + BeautifulSoup4 + Selenium + PhantomJS in einer Windows-Umgebung funktioniert.
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 = "(Meine Benutzer-ID)"
PASSWORD = "(Mein Passwort)"
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()
Der einzige Unterschied zu gestern ist also die Beschreibung des Webtreibers. .. .. Seit gestern
driver = webdriver.Firefox()
Es war
#### **`driver = webdriver.PhantomJS()`**
```PhantomJS()
Es wurde einfach.
Der zu beachtende Punkt ist, dass "PhantomJS ordnungsgemäß installiert ist und der Pfad vorhanden ist".
Übrigens ist das Operationsergebnis des obigen Skripts wie folgt.
(Im Vergleich zur gestrigen CSV-Datei hat sich der Verlauf um 2 erhöht!)
#### **`docomo-cycle.csv`**
```csv
1,2016/5/2 07:22,B3-01.Chuo Ward Office B3-01.Chuo City Office,→,2016/5/2 07:35,A3-02.Casa Nova Geschäft (Kaede Gebäude) A3-02.CASA NOUVA SHOP(Kaede Building)
2,2016/5/2 18:29,A3-02.Casa Nova Geschäft (Kaede Gebäude) A3-02.CASA NOUVA SHOP(Kaede Building),→,2016/5/2 18:50,B4-03.Kirschblüten-Wanderweg (vor dem 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-Quadrat (Kiboricho-Dori) B3-03.Ginza 6-chome SQUARE(Kobikicho Dori),→,2016/5/5 21:48,B4-03.Kirschblüten-Wanderweg (vor dem Harumi Triton Square) B4-03.Sakura no sanpomichi(In front of Harumi Triton Square)
4,2016/5/6 07:28,B4-03.Kirschblüten-Wanderweg (vor dem Harumi Triton Square) B4-03.Sakura no sanpomichi(In front of Harumi Triton Square),→,2016/5/6 07:41,B2-02.Yanagi-dori (vor dem Tokyo Square Garden) B2-02.Yanagi-dori St. (In front of TOKYO SQUARE GARDEN)
5,2016/5/8 05:00,B4-03.Kirschblüten-Wanderweg (vor dem Harumi Triton Square) B4-03.Sakura no sanpomichi(In front of Harumi Triton Square),→,2016/5/8 05:08,H1-02.Toyosu Station H1-02.Toyosu Station
6,2016/5/9 07:25,B4-03.Kirschblüten-Wanderweg (vor dem Harumi Triton Square) B4-03.Sakura no sanpomichi(In front of Harumi Triton Square),→,2016/5/9 07:48,A3-02.Casa Nova Geschäft (Kaede Gebäude) A3-02.CASA NOUVA SHOP(Kaede Building)
7,2016/5/10 08:18,B4-03.Kirschblüten-Wanderweg (vor dem Harumi Triton Square) B4-03.Sakura no sanpomichi(In front of Harumi Triton Square),→,2016/5/10 08:40,A3-02.Casa Nova Geschäft (Kaede Gebäude) A3-02.CASA NOUVA SHOP(Kaede Building)
8,2016/5/10 19:26,A3-02.Casa Nova Geschäft (Kaede Gebäude) A3-02.CASA NOUVA SHOP(Kaede Building),→,2016/5/10 19:48,B4-03.Kirschblüten-Wanderweg (vor dem Harumi Triton Square) B4-03.Sakura no sanpomichi(In front of Harumi Triton Square)
9,2016/5/11 07:25,B4-03.Kirschblüten-Wanderweg (vor dem Harumi Triton Square) B4-03.Sakura no sanpomichi(In front of Harumi Triton Square),→,2016/5/11 07:45,A3-02.Casa Nova Geschäft (Kaede Gebäude) A3-02.CASA NOUVA SHOP(Kaede Building)
Allein das Ändern von Firefox in PhantomJS machte den Vorgang sehr erfrischend. Es wäre schön, Dinge wie das automatische Hinzufügen zu Google-Tabellen und das Speichern von Daten in DBs wie MySQL zu tun.
・ "Web Scraping mit Python" O'Reilly Japan, ISBN978-4-87311-761-4 -Für die Konvertierung von CSV-Dateien habe ich auf [this] verwiesen (https://github.com/REMitchell/python-scraping/blob/master/chapter5/3-scrapeCsv.py). (Das gleiche wie gestern)
Recommended Posts