見出し画像

[ソースコード&UI付き]pythonによるスマホサイトのスクレイピング(テストの自動化を含む)

スマホサイトのスクレイピング&テストの自動化のやり方をお伝えしたいと思います。
web関係のスクレイピング記事は山ほどでてきますが、スマホサイトのスクレイピング&テストの自動化記事できれいにまとまっているサイトがなく、躓いたところがおおかったので具体的な一例でソースコード付きの記事を作製しました。


スマホサイトをスクレイピング(テスト自動化)メリット

android OSやIOSでのアプリ内の情報をPCで使えるデータ(CSVファイルやテキストデータなど)に変換することでさまざまなことができます。
特に、webサイトがなくスマホアプリだけで完結しているような場合に本記事が役に立ちます。スマホではみれるが、PCでは表示ができないものに対して本記事を活用していただけたらと思います。webスクレイピングよりも難易度は上がります。

以下のアプリはPCサイトにはなく、スマホアプリ内でしか見れない例です。このようなスマホアプリしかないものを対象にしております。
最強の2chまとめ - Marimba2Log - Google Play のアプリ
ペイペイ(PayPay) - TRIPMALL

※スクレイピングについては各社のルールに従ってください。
上記アプリをスクレイピング対象のおすすめというわけではないです。

webサイトがある場合はこのやり方ではなく、以下サイトなどを参考に実施してください。本記事の対象外です。


全体像(初期設定各種インストールを含む)

iOSとandroidOSでは、やり方が違います。iOSのほうが若干めんどくさいため本記事ではandroidOS内のアプリで表示されているものをPCで使用できるCSVファイルなどに書きうつすやり方を紹介します。
またそれに伴ってスマホアプリのタッチ操作、スワイプ操作、クリック操作、位置情報の偽装などのやり方をソースコード付きで解説します。
特にAndroid studio でのやり方の記事は多く見かけますが、かなり動作が重いため使い勝手が悪いです。そこで軽量なLDplayerを使用したやり方を紹介します。

STEP1  appium /SDK / Node.jsをインストールする。
→ほかのサイトでいろいろ紹介されていますのでかいつまんで
説明します。
STEP2  LDplayer (アンドロイドエミュレータ)をインストールする。
STEP3  LDplayerの設定
STEP4  appiumとLDplyaerをつなぐ
STEP5 データ取得
STEP6  【応用】複数エミュレータ起動による速度向上
以下のような形でデータを取得していきます。
LDplayer内のアプリが自動で立ち上がり、自動でクリックをし、自動でスワイプをし、データを取得していきます。NOTEだと動画をあげれないみたいなので実際の写真です。動画ができないのはどうにかしてほしいな。。。
起動前の写真です。

起動中の写真です。自動でアプリが立ち上がり、クリックやスワイプをして取得したいデータをとります。黄色部分がアプリです。STEP5では、複数のエミュレータを起動して一気に評価/データ取得します。

STEP6 複数起動前の写真(とりあえず3つです)
いくつでも増やすことができます。ただ、PCの性能に依存します。

STEP6 の複数起動中の写真(とりあえず3つです)

上記のようにこの記事を読むと、PC上でスマホアプリの操作を自動でできるようになります。
よければぜひみていってください。
悩まれている方などおりましたがサポートしますのでお気軽に問い合わせください。

本記事では、上記の写真で示したようにPAYPAYアプリ内のデータ取得をソースコード含めて解説します。
paypayアプリ内のお店情報(店名/電話番号/URL etc)を取得するツールを作製します。位置情報を偽装し、各位置情報に基づいてデータを取得していきます。
UI付となっております。
以下のようなUIがついており緯度や経度を指定し、LDplayerの保存先やpaypayのAPKのパスを指定し実行を押すと、取得範囲,取得間隔に記載の範囲でデータを取得していってくれます。


対象はwindows PCとなります。

ここから先は

42,736字 / 11画像

¥ 3,000

期間限定 PayPay支払いすると抽選でお得に!

この記事が気に入ったらサポートをしてみませんか?