今回は、このサイトをスクレイピングしてみる。
https://www.walkerplus.com/event_list/eg0135/
①ニフティクラウドに登録して、APIキーを取ってきて、以下のような”nifty_cloud.yml”ファイルを作成する。
APPLICATION_KEY: 'your_application_key'
CLIENT_KEY: 'your_client_key'
②クロムドライバーをダウンロードして、作業ディレクトリにおく。
https://sites.google.com/a/chromium.org/chromedriver/home
③Pythonで以下を実行。
ライブラリの実行
from py_nifty_cloud.nifty_cloud_request import NiftyCloudRequest
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import os
from time import sleep
日付の情報を取得するコード
driver_path = "/Users/****/Desktop/PYTHON/chromedriver"
driver = webdriver.Chrome(driver_path)
driver.get("https://www.walkerplus.com/event_list/eg0135/")
sleep(10)
dates = driver.find_elements_by_class_name("m-mainlist-item-event__period")
date_list = []
for i in range(len(dates)):
date = dates[i].text
date_list.append(date)
print(date_list)
print(len(date_list))
場所の情報を取得するコード
places = driver.find_elements_by_class_name("m-mainlist-item-event__place")
place_list = []
for i in range(len(places)):
place = places[i].text
place_list.append(place)
print(place_list)
print(len(place_list))
祭りのタイトルを取得するコード
titles = driver.find_elements_by_class_name("m-mainlist-item__ttl")
title_list = []
for i in range(len(titles)):
title = titles[i].text
title_list.append(title)
print(title_list)
print(len(title_list))
ニフティーのデータベースに格納
# instanciate with yaml file contains APPLICATION KEY and CLIENT KEY
ncr = NiftyCloudRequest('./nifty_cloud.yml') #application keyとclient keyを書いた、ymlファイルを作成しておく。
path = '/classes/Festival'
method = 'POST'
# post a new recode
for i in range(len(date_list)):
values = {'date': date_list[i],'place': place_list[i],'title': title_list[i]}
response = ncr.post(path=path, query=values)
print(response.status_code)
すると、

データベースに格納できた。