Girls Job Change.com

仕事を辞めてゲームを楽しもう!

python tkinterでWindowsデスクトップアプリ webスクレイピングして表示するまで

   

最近プログラム言語としてPythonが人気です。

機械学習やAI、予測モデルの作成などの情報を調べると、Pythonが使われていることがほとんど。

 

しかも、Pythonはライブラリモジュールが豊富。だから、プログラムをほとんど触ったことがない私のような素人でも、簡単にいろいろ作ることが出来ます。Pythonで作ったプログラムは、tkinterってライブラリを使うことで、ボタンなどのUI機能を持たせることが出来ます。また、出来上がったプログラムはpyinstallerってライブラリでexeファイルにすることが出来ます。

ってことで、早速pythonでtkinterをやっていきましょう。


Python tkinterでwebスクレイピング結果を表示

実行環境

  • Windows10
  • Python 3.6.4
  • VS code

Python ヘッドレスChromeでネット情報を取得

① ChromeDriverをダウンロードして C:\driver に保存

ChromeDriverをダウンロードするために、下記のサイトに行く。

>>ChromeDriver – WebDriver for Chrome

ChromeDriverをダウンロードして C:\driver に保存

Latest Releaseの横、ChromeDriver 2.43を選択する。

ChromeDriverをダウンロードして C:\driver に保存

Windowsなので、chromedriver win32.zipを選択しダウンロード。

ChromeDriverをダウンロードして C:\driver に保存
ダウンロードしたzipファイルと解凍し、中身のchromedriverをC:\driverに保存。

 

*GoogleChromeのブラウザをインストールしていない場合は、追加でインストールして使えるようにしておいてください。

② モジュールとしてSeleniumをpipでinstall

pipを使ってseleniumをインストールします。

③ Seleniumのoptionでヘッドレスを設定

ヘッドレスとは、ブラウザを開かずにインターネットブラウジングを実行することです。

つまり、yahooのトップページを開かずに、トップページのニュースの文字だけを抜き出すとかが可能です。

読み込んでから表示するブラウザに比べて、無駄がない分圧倒的に早いです。

from seleniumで必要なモジュールをインストール。

optionでヘッドレスを追加。

メイン部分で、chromedriverの保存先のアドレスを示し、オプションを追加。

driver.get(“URL”)で、ヘッドレスブラウジングしたいURLを入力。

④ getData関数を作って情報を取得し表示

新たにgetDataって名前で関数を自作し、スクレイピング。

今回は、yahooトップニュースのタイトル名を抜き出してみます。

find_element_by_***の形でいろいろな要素が選択できます。テキスト要素はtextを付けます。

  • find_element_by_id
  • find_element_by_name
  • find_element_by_xpath
  • find_element_by_link_text
  • find_element_by_partial_link_text
  • find_element_by_tag_name
  • find_element_by_class_name
  • find_element_by_css_selector

他に複数の要素を引く場合は、次のコードで抜き出せます。

  • find_elements_by_name
  • find_elements_by_xpath
  • find_elements_by_link_text
  • find_elements_by_partial_link_text
  • find_elements_by_tag_name
  • find_elements_by_class_name
  • find_elements_by_css_selector

複数形の-sが付いているだけです。取り出す際は、代入した変数(elements)をfor文で回します。

idやclassは、要素を右クリックして『検証』を押して探します。

ChromeDriverをダウンロードして C:driver に保存

『検証』を押して表示された部分から、必要なclass名やid名を探します。

ChromeDriverをダウンロードして C:driver に保存 今回は、『emphasis』でした。

結果

こんな感じで抜き出すことができました。今日はここまで。