Mac用 スクレイピングアプリ

Python学習【365日チャレンジ!】345日目のマスターU(@Udemy11)です。

久しぶりにビットコインの価格をチェックしてみると、1BTCが300万円後半をうろついていて、400万円を超えたりしてるので、びっくりしました。

2017年には、猫も杓子もビットコインというくらいの勢いで、仮想通貨の取引所のCMに剛力彩芽や出川哲朗が出ていて、かなりの国民がビットコインの存在を知ったと思いますが、実際にどのくらいの人がビットコインを保有していたのでしょうか?

そんな2017年も12月になると仮想通貨バブルの崩壊が始まり、2018年1月には本格的に仮想通貨バブル崩壊が加速し、2019年は1BTC30万円程度までに暴落。

そこから約2年が経過した2021年1月には、1BTC400万前後の価格になっているので、仮想通貨は投資というより投機です。

とはいえ、またテレビが取り上げはじめて多くの国民の関心を集める頃までは上昇が期待できるので、余剰資金があれば、そのお金がないものとして、今のうちに仮想通貨を購入しておけば、宝くじより一攫千金の確率は高いと思いますよ。

それでは今日も、Python学習を始めましょう。

昨日の復習

一昨日と昨日で、Tkinterを使って、任意のキーワードでGoogle検索した結果ページから、URLとタイトルを抜き出してCSVに保存するプログラムを作りました。

PycharmからPythonファイルを実行すると、検索ウインドウが表示されて、検索したいキーワードを入力すれば、URLとタイトルがPycharmのプログラムフォルダにCSVファイルが保存されました。

詳しくはこちらの記事をごらんください。

今日は、昨日作成したアプリをMac上で通常のアプリのように使えるMac用アプリを作りたいと思います。

Py2app

Py2appは、Pythonで作成したプログラムをMacのアプリケーション実行形式【.app】にするためのツールですが、まずはvirtualenvの環境を構築してpippy2appと必要なライブラリをインストールします。

以前学習したこちらの記事を参考にして、任意の名前のvirtualenvを構築してからpy2appをインストールしてください。

今回は、virtualenv gsgappgsgappという名前のvirtualenv環境を構築します。

次にsource gsgapp/bin/activateで環境をアクティベートしてから、必要なライブラリを次のコマンドでインストールします。

  • pip install py2app
  • pip install beautifulsoup4
  • pip install requests

pip install py2apppy2appをインストールしたあと、pipのアップグレードの警告が出た場合はpip install --upgrade pippipをアップグレードしておきます。

残りのbeautifulsoup4requestspipインストールすれば準備は完了です。

setup.pyの作成

環境が構築できたら、次は、setup.pyを作成します。

ターミナルからコマンドpy2applet --make-setup getut_data.pyを実行すると、setup.pyが作成されるので、DATA_FILES = []の部分をDATA_FILES = ['scrape_t_u.py']に変更します。

変更したsetup.puがこちら

"""
This is a setup.py script generated by py2applet

Usage:
    python setup.py py2app
"""

from setuptools import setup

APP = ['getut_data.py']
DATA_FILES = ['scrape_t_u.py']
OPTIONS = {}

setup(
    app=APP,
    data_files=DATA_FILES,
    options={'py2app': OPTIONS},
    setup_requires=['py2app'],
)

あとは、Usageにあるようにターミナルからpython setup.py py2appを実行すればMac用アプリが完成します。

Mac用 スクレイピングアプリ

まとめ

これで完成!

と言いたいところなのですが、どうにもできたアプリをダブルクリックして立ち上げたあと、キーワードを入力して抽出ボタンをクリックしてみたところ、出来上がったCSVにはデータが入っておらず、titleURLの項目名だけが入っているだけでした。

原因をネットで調べてみると、パッケージ内を表示させて、実際のプログラムを実行してみるといいとのことだったので、パッケージの中身を表示して、MacOSファルダに入っているプログラムをターミナルから立ち上げてみました。

問題なく入力ウインドウが立ち上がるので、キーワードを入力して抽出してみると、なんとびっくり、問題なくCSVが書き出されるではありませんか!

原因がわからず、ネットをうろうろしながら、疲れ果てたので、今日はここまでにして、明日また原因を探っていこうと思います。

それでは、明日もGood Python!