0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Pythonでスクレイピングしてニフティクラウドに格納

Posted at

ymlファイルの作成

まずは、NiftyCloudのAPIキーをコピペして、ymlファイルを作成します。

nifty_cloud.yml
APPLICATION_KEY: 'your_application_key'
CLIENT_KEY: 'your_client_key'

ChromDriverをダウンロード

次に、ここからChromDriverをインストールします。

今回スクレイピングするサイト

https://www.walkerplus.com/event_list/eg0135/
お祭りの情報をスクレイピングして、その情報をニフティクラウドに格納したいと思います。

Pythonで走ろう!

上の2つのファイルはこれから走らせるコードと同じ作業ディレクトリに置きます。

code.py
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
from time import sleep
code.py
driver_path = "/Users/********/chromedriver"
driver = webdriver.Chrome(driver_path)
driver.get("https://www.walkerplus.com/event_list/eg0135/")
sleep(10)

お祭りの日付をスクレイピングします。
スクリーンショット 2019-09-08 21.37.45.png

サイトの中で、日付はここにありますね!
クラスの名前で指定して、日付の値を取得します。

code.py
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)

結果がこちら。

['2019年9月27日(金)・28日(土)', '終了間近 2019年9月15日(日)', '2019年9月14日(土)~20日(金)', '2019年9月21日(土)~25日(水)', '終了間近 2019年9月14日(土)・15日(日)', '終了間近 2019年9月7日(土)・8日(日)', '終了間近 2019年9月14日(土)・15日(日)', '終了間近 2019年9月13日(金)', '2019年9月21日(土)・22日(日)', '終了間近 2019年9月7日(土)~9日(月)']

次は、お祭りの場所をスクレイピングします。同じようにクラスの名前を指定して、値を取得します。

code.py
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)
['武蔵総社 大國魂神社', '石清水八幡宮', '柞原八幡宮', '大原八幡宮', '山陽電車高砂駅南側一帯', '北澤八幡神社', '武蔵野八幡宮', '住吉大社', 'JR恵那駅前周辺', '山梨県上野原市上野原']

お祭りのタイトルもスクレイピングしちゃいます。

code.py
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)
['大國魂神社くり祭', '勅祭 石清水祭', '柞原八幡宮 仲秋祭・浜の市', '大原八幡宮 放生会', 'たかさご万灯祭2019', '北澤八幡神社例大祭', '第47回 吉祥寺秋祭り', '住吉大社 観月祭', '2019 ENAみのじのみのり祭', '牛倉神社例大祭']

ニフクラのデータストアに格納

code.py
ncr = NiftyCloudRequest('./nifty_cloud.yml') #application keyとclient keyを書いた、ymlファイルを作成しておく。
path = '/classes/Festival'
method = 'POST'

# 格納
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)
201

ニフクラのデータストアを確認

スクリーンショット 2019-09-08 21.35.18.png

お祭りの情報が格納できています!!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?