よちよちpython

独習 python/Qpython/Pydroid3/termux

Android上のpythonでWebスクレイピング

目的・目標

Androidスマホで、termuxを使ってpythonを動かし、日経新聞社のサイトから、日経平均株価をWebスクレイピングする。


前準備



今回の手順

  1. 日経平均株価をWebスクレイピングするpythonスクリプトを作成・保存する。
  2. termuxを起動し、python仮想環境を起動。
  3. 仮想環境から 1 で作ったpythonスクリプトを実行。
  4. 実行の確認その他



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)



画像

f:id:chayarokurokuro:20190512200502j:plain


保存文字コード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