PythonでWeb申込を自動入力する方法

Pythonでブラウザ制御

 

今回はPythonを使用して自動入力する方法を記事にしたいと思います。

一般的に人間がコンピュータの前に座ってアプリを操作しているかのように、仮想的にキー入力やマウスクリックをしてアプリを制御する手法のことを「GUIオートメーション」と呼びます。

pyautoguiモジュールを使えば、仮想的にキーボードとマウスの制御を行うことができます。

自動入力のプログラムを書いていく前に、さきにWeb申込フォーマットをHTML/CSSで作っていきます。

Web申込フォーマットを作成した後に、フォームの位置を確認します。

最初の入力位置が分かれば、あとはTABキーで切り替えていくことができます。

最後の「登録」ボタンを押しても意味がないので、今回はカーソルを「登録」ボタンまで移動するプログラムにしました。

HTML/CSSでWeb申込フォーマットを作成する!

即席でindex.htmlとstyle.cssを作っていきます。

index.htmlから作ります。

index.html

<!--index.html-->
<!DOCTYPE html>
<html>
<head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width">
        <title>Mediの申込フォーマット</title>
        <link rel="stylesheet" href="style.css">
    </head>
<body>
<div class="content">
<h1>医学生Mediの申込フォーマット</h1>
<p>入会するには、次のフォームに必要事項をご記入ください</p>
<p>メールアドレス:<input type="email" name="mymail"></p>
<p>パスワード:<input type="password" name="passcode"></p>
<p>TEL:<input type="number" name="number"></p>
<div class="register"><p><button type="submit">登録する</button></p></div>
</div>
</body>
</html>

次にstyle.cssを作っていきます。

style.css

/* style.css */
h1{
font-size: 32px;
text-align: center;
}
.content{
background-color: rgb(204, 224, 255);
width: 600px;
margin:100px auto;
padding: 30px;
border: 10px dashed #0930af;
}
.register{
text-align:center;
}

これらをデスクトップのweb-pageフォルダに入れます。

作ったindex.htmlをFirefoxブラウザにドラッグすると作ったウェブページが表示されます。

Mediの申込フォーマット

医学生Mediの申込フォーマット

ちゃんと自作した申込フォーマットのページが表示されていることが確認できます。
これからPythonで自動入力を行うプログラムを書いていきたいと思います。
HTML/CSS関連の記事についてはコチラ

自動入力を行うためのプログラムを書く!

自動入力を行うには、入力欄のPC上での位置を把握する必要があります。

>>> import pyautogui,time
>>> pyautogui.position()
(495, 394)
>>> x,y = pyautogui.position()
>>> x
495
>>> y
394

マウスの位置を知りたい場合には、position()を使用します。
これらをx,yという変数に格納しておきます。
あとはvimでfill_out.pyとしてコードを書いていきます。

# fill_out.py
import pyautogui,time
position = (495,394)
register = (659,527)
x,y = position
xx,yy = register
data = {'Mail':'Medical_Student`sample.com','Pass':'Medi','Tel':'0000-0000-0000'}
pyautogui.click(x,y)
pyautogui.typewrite(data['Mail'] + '\t')
time.sleep(1)
pyautogui.typewrite(data['Pass'] + '\t')
time.sleep(1)
pyautogui.typewrite(data['Tel'] + '\t')
time.sleep(1)
pyautogui.moveTo(xx,yy,duration=0.25)

最後に登録ボタンを押して意味がないので、マウスを「登録する」ボタンまで移動させるようにしました。

Pythonで自動入力を実行!

pythonでブラウザの自動制御

Pythonで上手く自動入力されていることが確認できます。
GUIオートメーションをする際にはぜひ参考にしてみてください。
終わり。

今回参考にした書籍はコチラ!

Udemyというオンライン学習サイトで、Al-Sweigart本人の授業を受けることもできます。
英語なので初めてPythonを勉強する方にはハードルが高いかもしれないので、まずは日本語のPython講座を受講して雰囲気を掴むことをオススメします。
「Automate the Boring Stuff with Python」では、コンプリヘンションやクラスについては取り扱っていません。
あくまでも「ノンプラグラマーが仕事で役立つプログラミングスキル」にフォーカスしているため、敷居は低いと思います。

自分は受講しましたが、やっぱり英語クラスで有名な人の授業は面白く大変勉強になります。
英語のオンライン授業の方が圧倒的に質が高い場合が多いですので、この機会にぜひトライしてみるのもアリかもです!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください