おすすめアイテムをいくつか紹介

広告ブロックがONになっていると表示されないことがあります。

【Python-SELENIUM】宝くじの当選番号を取得1(1日分)

今回はpythonの「Selenium」というモジュールと
「ChromeDriver」というGoogleChromeを
プログラムで動かす為のドライバを使用して

Webページが自動で立ち上がり
情報を引っ張ってくる(Webスクレイピング)を行おうと思います。

 

PyCharmを使用して作成しました。
同様の環境であればコピペで動作すると思われます。

 

Webスクレイピングとは

Webサイトからユーザーが欲している任意の情報を取得し、
ゆくゆくは加工、解析していく技術であり、
スクレピングを行うプログラムをスクレイパーと呼びます。

コードさえ作成してしまえば、いちいち手作業で収集していた内容も
プログラムが自動で収集してきてくれるようになります。

 

違法となり得ることも!?

Web上に公開されているとはいえ
よそのサイトから勝手に情報を持ってくるわけですので
法に触れてしまうこともあります。

詳しくは下記サイトを参考にしてみてください。

スクレイピングは違法?3つの法律問題と対応策を弁護士が5分で解説

 

ChromeDriverのダウンロード

下記サイトから、
利用しているGoogleChromeのバージョンにあった
ドライバをダウンロードしてください。
https://chromedriver.chromium.org/downloads

解凍したZipファイルを
プロジェクト内の任意の箇所に
格納して下さい。
(このソースでは、ソースコードと同様の箇所に格納しました。)

下記のWebサイトから
https://www.mizuhobank.co.jp/retail/takarakuji/numbers/numbers3/index.html?year=2020&month=6
Numbers3(ナンバーズ3)の当選番号を取得する処理を
実装していきます。

 

コーディング

以下、コードを入力することで
Webページが開き、情報を取得しに行きます。
その後コンソールに取得した当選番号を表示してくれます。

↓以下、コード

from selenium import webdriver

driver = webdriver.Chrome(executable_path=".\chromedriver.exe")
driver.get("https://www.mizuhobank.co.jp/retail/takarakuji/numbers/numbers3/index.html?year=2020&month=6")

# CSSセレクタを使用して、抽選日を取得
tyusenbi = driver.find_element_by_css_selector('#mainCol > article > section > section > section > div > div:nth-child(1) > table:nth-child(1) > tbody > tr:nth-child(1) > td');
tyusenbi_text = tyusenbi.text

# CSSセレクタを使用して、回別を取得
kaibetsu = driver.find_element_by_css_selector('#mainCol > article > section > section > section > div > div:nth-child(1) > table:nth-child(1) > thead > tr > th.alnCenter.bgf7f7f7.js-lottery-issue-pc');
kaibetsu_text = kaibetsu.text

# CSSセレクタを使用して、抽選数字を取得
tyusenNo = driver.find_element_by_css_selector('#mainCol > article > section > section > section > div > div:nth-child(1) > table:nth-child(1) > tbody > tr:nth-child(2) > td > strong');
tyusenNo_text = tyusenNo.text
print(tyusenbi_text + '/' + kaibetsu_text + '/' + tyusenNo_text)

# ページのクローズ
driver.close()

 

処理の解説

3行目
・先ほどダウンロードしてきたChromeDriverのパスを記載しています。

4行目
・実際に値を取得したいサイトを開きます。

6~16行目
・実際にWebページからCSSセレクタを基に値を取得してきています。
(cssセレクタの取得方法は後ほど。)

17行目
・コンソール上に、取得してきた文字列を結合して表示しています。

20行目
・開いていたWebページを閉じて一連の処理が終了となります。

 

 

cssセレクタの取得方法

chromeから開ける、DevToolsを使用して
cssセレクタを取得していきます。

 

1.対象のWebページを開いて「F12」を押下してDevToolsを開く
2.左上の四角に矢印が入っているボタンを押す

3.Webページ上で取得したい項目を押下

 

4.DevToolsを見ると、指定した項目のコードが水色にマーキングされていることを確認
5.右クリック→Copy→CopySelectorでcssセレクタをコピーすることが出来ます。

 

 

次回

次の記事では、1ヶ月分の当選番号を
自動でまとめて取得する方法を
試していきたいと思います。

それではまたー!!