え?毎日Webサイトをチェックしてる?それは Python にやらせましょう
こんにちは、Artista プログラミングスクールの青柳です
最近、生徒さんの間で「Web スクレイピング」が流行っています
流行ったというか、たまたまやっている人が多いというだけですが
Web スクレイピングとは?
例えば、株の取引をやっていて、毎日株価の動向をチェックしているとしましょう。複数の銘柄について、何回も画面を遷移しながら、何々がいくらだからとかメモを書きながら確認をしていると思います。でも、これって大変じゃないですか?
実は、プログラム(Python とか)でブラウザ(Chrome とか)を操作することができるんです。コレを使えば、毎日の情報収集は短時間で済みますね。短時間と言うか、朝起きたら集計されているなんてこともかんたんですね。
Python でスクレイピングしてみよう
Web スクレイピングには Selenium というライブラリ(ツールです)があって、それを使えば比較的簡単に Web 画面から情報を取得できます。下記は本家サイト(英語)ですが、日本語で解説しているサイトも多数あるので、参照してみては如何でしょうか?
以下は日本語で解説してあるサイトにかかれていたプログラムです。プログラムの内容は、Yahoo にアクセスして "selenium" というキーワードで検索して検索結果を表示するというものです。ほんの数行のプログラムで Web サイトから情報を取得することができるのがわかると思います。
from selenium import webdriver
driver = webdriver.Chrome("c:/driver/chromedriver.exe")
driver.get("http://www.yahoo.co.jp")
elem_search_word = driver.find_element_by_id("srchtxt")
elem_search_word.send_keys("selenium")
elem_search_btn = driver.find_element_by_id("srchbtn")
elem_search_btn.click()
elements_a = driver.find_elements_by_css_selector("#WS2m .w .hd h3 a")
for elem in elements_a:
url = elem.get_property("href")
print(url)
難しいのはむしろ環境構築
簡単に Web 情報を取得できる Selenium ですが、プログラミングよりも環境構築がうまく行かないことが多いです。Selenium に限らず、個人的にはプログラミング学習者がつまずく一番ポイントが環境構築だと思っています。
参考サイトは Mac で動かしているが、手持ちの PC は Windows であるとか、ブラウザのバージョンが違うとか、環境変数が云々・・・、色々見て試したけど結局うまく行かなかったのでやめてしまった。よく聞く話です。
実は、そのつまづきも大事です
そもそも、絶対につまづかないような解説をすれば良いじゃないか。それはそうですが、コンピュータをいじっていると、こういったたぐいの障壁はよく出てきます。そのたびに完全な解説を探していたのでは成長はありません。
なぜ動かないのか?何が悪かったのか?どうして動くようになったのか?こういったステップを踏ませることが、強いプログラマを育てる道なのです。問題の分析、仮設を立てて一つ一つ検証、原因の特定、対策の実施、これこそが技術者の基本となります。
つまづくのが心配という方は是非!
Artista プログラミングスクールはひとりひとりのつまづきをサポートします