カテゴリー
その他 Python

Pythonでスクレイピングしてニフティークラウドに保存

今回は、このサイトをスクレイピングしてみる。

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)

すると、

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

コメントを残す

WordPress.com で次のようなサイトをデザイン
始めてみよう