手っ取り早く python とか uwsc とか 自動化 とか

自動化までの道のりを答え付きで掲載

【surface】エミュレータのAndroidでも会計時に楽天ポイントカードアプリで精算できた件【nox】

今回はAndroidエミュレータって開発以外に使えるのか検証してみた

単純にsurface 3nox playerを起動、仮想空間の中で楽天ポイントカードアプリのバーコードを店頭で読み込めるのか試してみた

ちょうどトップ画像のような表示方になった

 

以下支払いが成功した店舗

・Family Mart  無人レジ

サンドラッグ 有人レジ

 

上記からどの店舗でも問題なく使えるっぽいことがわかった

 

【Android】Samsungスマホ(Galaxy S9)の初期化をしたい件【リカバリーモード】

f:id:pyZiro:20220323153534p:plain

Androidスマホの初期化は設定アプリから簡単にできるが、今回はロックの解除パターンを失念してしまい文鎮と化していたGalaxy S9を初期化する場合のお話。

リカバリーモードは各社スマホでも機種によって起動するための操作が若干違うようです。

Galaxy S9リカバリーモード起動操作は、端末を再起動(または起動)直後に「電源キー」+「音量UPキー」+「Bixbyキー」同時長押しで移行することができました。

 

f:id:pyZiro:20220323165248j:plain

起動に成功した場合、通常の画面とは異なり画像のようなメニューが表示されます。

 

ここからの操作は画面をタップするのではなく「音量UPキー」「音量DOWNキー」「電源キー」で操作します。

wipe data/factory reset」にカーソルを合わせて「電源キー」を押します。

f:id:pyZiro:20220323173106j:plain f:id:pyZiro:20220323173239j:plain


次画面で「データの初期化」を行います。処理は通常60秒以内に終わります。

f:id:pyZiro:20220324161603j:plain

 

処理が完了したら起動時のメニュー画面に戻ります。また画面下部に処理が完了したログが出力されます。

f:id:pyZiro:20220324161923j:plain

 

上記確認後「reboot  system now」(再起動)を行うと工場出荷状態でAndroidが立ち上がります。

※最初のGalaxyロゴで多少時間がかかりますが放置しているとOSが立ち上がりました。

 

お疲れ様でした、次回はAndroid端末保護機能Device Protection)を解除した方法を記載します。

 

【ポイ活】 今更ながらの楽天WEB検索の自動化案その① 【Windows10】

 経緯としては元々UWSCInternet Explorerでツールを作成することが多く、上記のニュースが飛び込んできたためとりあえずよく使うツールから改修する必要があると考え、当記事の投稿に至った。

 

【検索ツールの仕様】

①指定の楽天IDでログイン

検索ワードリストを作成

③指定回数検索を繰り返す

 

単純なツールのように思えますが、楽天WEB検索ツールバーのインストール状態や、ブラウザによって挙動が違うので微調整に手間がかかりました。

今回は赤字部分の②検索ワードリスト作成pythonで実現してみました。

 

もちろん検索ワードは毎日固定しておいて同じワード検索の繰り返しでもよいのですが、それではあまりにお粗末すぎるので毎日検索ランキング等から自動生成させます。

検索上限回数は30回なので それより多めのリスト数を作成すれば問題ありません。

 

今回は下記のインストールをあらかじめ行ってください。

bat

pip install beautifulsoup4
pip install requests

 

対象となるサイトを複数用意してみました、どれでもお好きなものをご利用ください。

コード実行後.pyと同じディレクトリにword.txtが生成されます。

[価格.com]

python

#価格.com
import os
import sys
import random
import requests
from bs4 import BeautifulSoup

load_url = 'http://kakaku.com/keyword/'
html = requests.get(load_url)
soup = BeautifulSoup(html.content, 'html.parser')

array = ''
for element in soup.find_all('a'): 
if 'search_results' in str(element):
array = array + str(element.text) + '@@@'

array = array.split('@@@')
random.shuffle(array)

f = open(os.path.dirname(os.path.abspath(__file__)) + '\\word.txt', 'w', encoding='shift_jis')
for item in array:
f.write(str(item) + '\n')
f.close

 

# Python

# beautiful soup

# 楽天ポイント

【Vysor】 Redmi Note 9T で Androidリモート操作に手こずった話 【Xiaomi】

f:id:pyZiro:20210607140031j:plain



 

新しく手に入ったAndroidスマートフォン Redmi Note 9T が手に入ったので従来通りPCからリモート操作の設定を施した。

 

主にスマホゲームの自動操作のためである。

 

 Google検索で『Android 開発者オプション』と調べれば方法はいくらでも出てきますが、今回は Redmi Note 9TXiaomiスマートフォン) ではまった説明を記載する。

 

【PC側設定】

上記からご使用のOS(今回はWindows)のインストーラexe)をダウンロードします。

インストール後、下のようなアプリが表示されれば設定は終了。

f:id:pyZiro:20210606173958p:plain

 


Android側設定】

[設定]アプリを起動し、[バイス情報]へ進みます。

[MIUIバージョン]を7回タップ(連打)すると開発者向けオプションが有効になります。

[設定]アプリの最初に戻り[追加設定]を選択後、[開発者向けオプション]を選択します。

f:id:pyZiro:20210607140312p:plain

 

項目[USBデバッグ]を有効にします。

従来使っていた他社スマートフォンの場合以上で設定完了なのですが、結論を言うと[USBデバッグ]以外に[USB経由でインストール]と[USBデバッグ]の項目も同時に有効にしておいてください。

(セキュリティ面の警告が多数表示されますが、全て許可してください。)

f:id:pyZiro:20210607141625p:plain

 

上記を許可していないと以下のようなことが発生します。

 

[USB経由でインストール]

PC「AndroidVysorアプリがインストールされてないからUSB経由でインストールするよ。」

Android「USB経由インストールは許可していません!」

PC「アプリインストールに失敗しました、USB経由でスマートフォンは認識できるけどアプリがないから画面を移したり、操作したりができません。」

apk path failed (empty)) ← これが検索に引っかからなくて苦労した。。。

※直接プレイストアから事前にインストールしておく回避方法があります。

 

[USBデバッグ(セキュリティ設定)]

PC「Androidのキャプチャができたので、マウスで操作してみよう」

Android「USB経由操作は許可していません!」
 


 【設定の続き】

 次にPCとスマートフォンをUSBケーブルで接続します。

認識に問題がなければPC側のVysorアプリにスマートフォンの端末が表示されます。

問題なければ再生ボタンをクリックしましょう。

 

f:id:pyZiro:20210607144141p:plain

 

次にスマートフォン側に以下のような画面が表示されますので、許可してインストールを行ってください。(初回接続時のみ

f:id:pyZiro:20210607144433p:plain

 

以上で設定は完了です。

問題がなければPC画面上にスマートフォンの画面が表示され、操作も問題なく行えると思います。

 

f:id:pyZiro:20210607133237j:plain

無事PCからゲーム画面も操作することができました。

 

# Vysor

# Android

# Xiaomi

# 開発者向けオプション

【zip有】続・Python + Selenium で Chromium Edge の自動操作【全自動】


 

需要がありそうなので前回のツールのChromium Edge(以下Edge)版も作ってみた。

ChromeDriverと違い、python.exeと同じ階層に配置する必要はないがDriverの配置ディレクトリは同じにしたほうがわかりやすいため同じ動作としている。

 

EdgeDriverUpdate.zip

f:id:pyZiro:20210605144019p:plain

 

従来通り00a_verチェック.batを実行するだけで設定は完了です。

(問題なく動作すれば配置フォルダが表示されmsedgedriver.exeが存在することが確認できます。)

f:id:pyZiro:20210605144410p:plain

 

※自分で作っといて忘れるとかよくあるのでここからは備忘録も兼ねて処理の流れを記載

 

 00a_verチェック.bat

インストールされているブラウザのバージョンを出力後⇒メジャーバージョン取得

-DOSコマンド-
rem Chrome 32bit
dir /B /O-N "C:\Program Files (x86)\Google\Chrome\Application<#DBL> | findstr "^[0-9].*¥>
rem Chrome 64bit
dir /B /O-N "C:\Program Files\Google\Chrome\Application" | findstr <#DBL>^[0-9].*¥>
-Powershell-
# Chromium Edge
(get-item ($env:SystemDrive + "\Program Files (x86)\Microsoft\Edge\Application\msedge.exe")).VersionInfo.FileVersion

 

00b_WDダウンロード.bat

調べたメジャーバージョンからWebDriverをダウンロード(uwscWebDriver.uwsを使用)

-uwsc-
// Chrome
driver = WebDriverDownload.Chrome(ver)
// Chromium Edge
driver = WebDriverDownload.ChromiumEdge(ver)

 

00c_pyへコピー.bat

ダウンロードしたzipファイルを解凍⇒python環境変数PATHフォルダへ解凍されたexeファイルをコピー

-DOSコマンド-
rem python.exeのパスを表示(複数バージョン可)
py --list-paths

 

上記を連続で行い、環境設定を自動化しています。 

またブラウザ立ち上げ時のコードも書き方に違いがあるのでご注意ください。

 

-python-
# Chrome
driver = webdriver.Chrome()

# Chromium Edge
import sys
driver = webdriver.Edge(executable_path=sys.base_prefix + '\\msedgedriver.exe') # driber.exeのパスを指定

EdgeDriverUpdate.zip

# selenium
# python
# Chromium
# Microsoft Edge
# uwsc