Pythonでスクレイピングしてニフティクラウドに格納
ymlファイルの作成
まずは、NiftyCloudのAPIキーをコピペして、ymlファイルを作成します。
APPLICATION_KEY: 'your_application_key'
CLIENT_KEY: 'your_client_key'
ChromDriverをダウンロード
次に、ここからChromDriverをインストールします。
今回スクレイピングするサイト
https://www.walkerplus.com/event_list/eg0135/
お祭りの情報をスクレイピングして、その情報をニフティクラウドに格納したいと思います。
Pythonで走ろう!
上の2つのファイルはこれから走らせるコードと同じ作業ディレクトリに置きます。
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
driver_path = "/Users/********/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)
結果がこちら。
['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日(月)']
次は、お祭りの場所をスクレイピングします。同じようにクラスの名前を指定して、値を取得します。
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恵那駅前周辺', '山梨県上野原市上野原']
お祭りのタイトルもスクレイピングしちゃいます。
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
ニフクラのデータストアを確認
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
お祭りの情報が格納できています!!
Author And Source
この問題について(Pythonでスクレイピングしてニフティクラウドに格納), 我々は、より多くの情報をここで見つけました https://qiita.com/p17103nm/items/2dac5c85dc6a495cebf1著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .