Android上のpythonでWebスクレイピング
目的・目標
Androidスマホで、termuxを使ってpythonを動かし、日経新聞社のサイトから、日経平均株価をWebスクレイピングする。
前準備
- AndroidスマホにGoogleプレイからtermuxをインストールする。
- termuxでpythonをインストール。Androidスマホにtermuxからpythonをインストールする - よちよちpython - 茶屋六郎九郎 -
- termuxでvenvを使い仮想環境構築。venvで仮想環境を作る - よちよちpython - 茶屋六郎九郎 -
- termuxでpythonモジュールのrequestsとBeautifulSoup4をpip installする。Android上のpythonにrequestsとBeautifulSoup4をpip install - よちよちpython - 茶屋六郎九郎 -
今回の手順
- 日経平均株価をWebスクレイピングするpythonスクリプトを作成・保存する。
- termuxを起動し、python仮想環境を起動。
- 仮想環境から 1 で作ったpythonスクリプトを実行。
- 実行の確認その他
1. Webスクレイピングするpythonスクリプトの作成・保存
始めます。
まずtermuxは日本語入力が出来ず使いにくいと思うので、使い慣れたエディタでスクリプトファイルを作って行きます。
PCでも何でもOKです。
ソースコードの説明は省きます。
保存の際はエラー回避のため一応文字コードをutf-8にしました。
# -*- coding: utf-8 -*- import requests from bs4 import BeautifulSoup nikkei_heikin = "" url = 'https://www.nikkei.com/' html = requests.get(url) soup = BeautifulSoup(html.text,"html.parser") span = soup.find_all("span") for tag in span: try: string_ = tag.get("class").pop(0) if string_ in "m-miH01C_rate": nikkei_heikin = tag.string break except: pass print("日経平均株価 ",nikkei_heikin)
画像
保存は文字コードをutf-8にして、ファイル名を「nikkei_heikin.py」にし、Documentsに保存しました。
エディタはパスを storage/emulated/0/Documents/nikkei_heikin.pyと示しております。
termuxからpython仮想環境を起動
termuxを起動したら下を入力して仮想環境に入る。
仮想環境はpython3.7で作っています。
$ . python3.7/bin/activate
↓
(python3.7) $
となれば仮想環境起動できています。
3. pythonスクリプトを実行
手順の1で作りDocumentsに保存したファイルをpythonで実行します。
エディタが示していたstorage/emulated/0/Documents/nikkei_heikin.pyを指定します。
(python3.7) $ python storage/emulated/0/Documents/nikkei_heikin.py
↓ 実行!
python: can't open file 'storage/emulated/0/Documents/nikkei_heikin.py': [Errno 2] No such file or directory
あれ?エラー。ファイルがない…?
ディレクトリ storage に移動し、中身を見てみます。
(python3.7) $ cd storage (python3.7) $ ls
すると
dcim movies pictures downloads music shared
emulatedがないし。
仕方ない。sharedに入ってみるか。
lsコマンドも。
(python3.7) $ cd shared (python3.7) $ ls
ディレクトリとファイルが並ぶ中に ディレクトリ Documents が居ます。
この中に作ったファイルがあるはず。
(python3.7) $ cd Documents (python3.7) $ ls nikkei_heikin.py
隊長! ターゲットを発見いたしました!
storage/emulated/0/Documents/nikkei_heikin.py
ではなく、
storage/shared/Documents/nikkei_heikin.py
に置き換わっています。
理由は別記事に書きます 👈 コイツ、分かってない奴
今は探し求めた nikkei_heikin.py と Documents の中に仲良くいるので、ファイル名だけを指定してpythonを実行します。
(python3.7) $ python nikkei_heikin.py
実行!enter!
…2、3秒待った。長く感じる。
日経平均株価 21,344.92 (python3.7) $
ということで、Android上で動かすpythonで、requestsとBeautifulSoup4を使ったWebスクレイピングが出来ることが確認できました。
(python3.7) $ deactivate $ exit
ではまた (@^^)/~~~
参考
スマホ Sony Xperia so-01k
Android version 9
python version 3.7.3
beautifulsoup4 version 4.7.1
requests version 2.21.0
参照
ストレージアクセス設定
AndroidでLinuxターミナル!termuxの初期設定 - lisz-works