Help us understand the problem. What is going on with this article?

Webスクレイピングで電気料金を取得する(中部電力)

More than 1 year has passed since last update.

電気料金を取得してLINEとかで通知したいです。
情報が以下のWebにしかないので止むを得ずスクレイピングします。

カテエネ(PC) | 中部電力が運営する家庭向けWEB会員サービス

1 モジュールの導入

必要なモジュールをラズパイにインストールします。
カテエネがjavascriptゴリゴリなのでseleniumに加えてphantomjsも使います。

sudo apt-get install python3-lxml
sudo apt-get install python3-cssselect

sudo pip3 install selenium
sudo pip3 install phantomjs

2 プログラム

以下の通りです。

sc.py
import lxml.html
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

#カテエネのサイトを開く
target_url = 'https://www.chuden.co.jp/home/index.html'
driver = webdriver.PhantomJS()
driver.get(target_url)

#ログインする
login_id = driver.find_element_by_id("loginId")
password = driver.find_element_by_id("password")
login_id.send_keys("ID")
password.send_keys("PW")
password.send_keys(Keys.RETURN)

#電気料金の照会ページへ移動
button = driver.find_elements_by_id("clubkatene-list-top-gn_data")
button[1].send_keys(Keys.CONTROL)
button[1].click()

#ページ下部、電気料金の表の値を取得
root = lxml.html.fromstring(driver.page_source)
date = root.cssselect("#tPastPerformanceTable th")
links = root.cssselect("#tPastPerformanceTable td")

#表示してみる
print("最新: "+date[6].text)
print(links[0].text)
print(links[5].text)
print(links[10].text)
print(links[15].text)
print(links[20].text)
print(links[25].text)
print(links[30].text)
print(links[35].text)
print(links[40].text)
print(links[45].text)
print(links[50].text)
print(links[45].text)
print(links[60].text)

#終了
driver.close()
driver.quit()

3 実行

結果:
スクリーンショット 2017-11-17 13.53.18.png

取れました。

4 終わりに

・意外と簡単にできる割りには楽しい
・lambdaに上げて定期実行して電気料金API化すると良さそう
・スクレイピングはサービス妨害になり得るので一日一回くらいで

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした