初めてのpythonインストールからseleniumでbot作成まで
どうもバカルダーです。
- 最近pythonっていうプログラミングをよく聞くけど難しそう
- まずどうやって使えるようにすればいいの?
- どんなことが出来るの?
という初心者の方に向けて30分以内にpythonの実行環境を用意する方法を紹介します。そして、さらにもう一歩踏み込んで、コピペでできるseleniumを使ったブラウザ自動操作bot作成までをサクッと紹介します。
初心者でもpythonはとりあえず無料でだいたいできる
正直、職業としてのプログラマーになるつもりが無い方は、教材を買ったり、有料スクールに通ってprint(“hallow world”)からいちいち勉強する必要はないと思います。
まずは「やりたいことありき」でそれを実現するためのプログラミングコードをネットで探したほうが近道だと思います。
この記事で出来るようになる事
- 自分のパソコンでpythonが動かせるようになる
- pythonでブラウザを自動操作できるようになる
- noteなどで無駄なBOTを買わなくて済む(重要)
- これを機会に勉強すればnoteとかでbot販売できるかも!?
特に3つ目は大事です。プログラミングがそこそこ分かるようになれば単純なコードで作られたBOTをさもすごい物のように宣伝しているnoteを購入したくなる気持ちになりません。
ブラウザ自動操作ってどんな事?
まず、ブラウザ自動操作とは何か説明しますと、まさに今あなたがやっていることを自動化する事です。
具体的には
- google chrome(ブラウザ)を開く
- googleへアクセス
- 検索窓に「python」と入力して検索する。
- 検索結果の1番上のサイトにアクセスする
- 記事の中にあるツイッターリンクをクリックしてつぶやく
- google chrome(ブラウザ)を閉じる
いわゆる普通のネットサーフィンで行う事のほとんどの作業を自動化できます。
結構便利じゃないですか?例えば、「ポイントサイトのログインポイントやクリックポイントをクリック一回で自動で完了」なんてことも出来てしまいます。
くれぐれも悪用厳禁ですよ!
手順はたったの3ステップで完了
プログラミングって最初のインストールや実行環境の準備が大変なイメージですが、pythonであれば、anacondaというソフトが全てやってくれますので以下のように3ステップで完了してしまいます。
- anacondaというソフトをインストール
- seleniumをインストール
- コードをコピペして実行
たったこれだけの作業であなたも今日から似非プログラマーになれます。
anacondaをインストールしてpython実行環境を用意する
まず、anacondaをインストールします。anacondaとはpythonを実行するためのいろいろなライブラリを同時にインストールしてくれます。
正直、宝の持ち腐れ感はありますが、「pythonを単体でインストールしてpathを通して・・・」とかよくわからない作業を一切しなくていいので非常に簡単です。
こちらのanacondaダウンロードページへアクセス。
ダウンロードが完了すると「Anaconda3-2018.12-Windows-x86_64」というような名前のインストーラー(exeファイル)がPCに保存されていますのでそれをダブルクリックします。
インストールが開始されます。
以上でanacondaのインストールが完了です。pythonも同時にインストールされているので、これ以上何も設定する必要はありません。
spyderでpythonを書いてみる
anacondaをインストールすると一緒に「spyder」というソフトもインストールされます。これはpythonコードを新規で書く、編集する、その場でテストすることができる非常に便利なソフトです。
今後はspyderを使ってコードを書いてテストしていきます。
spyderを開く
windowsでspyderと検索してソフトを起動させます。
起動すると以下のような画面になります。
左側の欄にpythonコードを書いて、実行すると実行結果が右側に表示されます。
試しに、
print("pythonを実行しました")
をコピペして名前を付けて保存した後に実行してみてください。
spyderはちょっと重いのでpythonを実行させるだけならAnaconda Promptを使おう
実際にコードを完成させて実行させる場合は、わざわざspyderを開く必要はありません。
コードを実行する場合は「Anaconda Prompt」を使います。これもanacondaと一緒にインストールされています。
windowsでanacondaと検索して起動します。
起動させると真っ黒な画面が表示されます。スーパーハッカー気分を味わったところで以下のコードをコピペしてエンターを押します。
cd .spyder-py3
上のコマンドの説明としては、[cd]はフォルダを移動するという命令です。なので「.spyder-py3というフォルダに移動しなさい」という意味になります。
pythonを実行するには[python ファイル名.py]と入力してエンターを押します。先ほどのコードをtest.pyという名前で保存した場合は以下の画像のような流れになります。
これでpythonの実行環境の構築が完了
以上でpythonのインストールからコードの編集、実行までできる環境が整いました。実際にはインストールしてコピペしてテストするだけなので意外に簡単だったと思います。
ブラウザ操作ライブラリseleniumをインストール
ではブラウザを操作するためのライブラリ「selenium」をインストールします。
anaconda promptにて、cd .spyder-py3と入力してエンターを押して、「
pip install selenium 」と入力してエンターを押します。
seleniumのインストールが完了すると上の画像のように「Successfully installed selenium-3.141.0」と表示されます。
chromeのwebdriverをダウンロード
次はchromeのドライバーをダウンロードします。こちらchromeDriverのページから「Latest Release: ChromeDriver ~」をクリックしてダウンロードしましょう。
ちなみに今回はchromeを使いますが、 firefoxのドライバーは[geckodriver](月光ドライバー)と言います。ちょっとかっこいいですよねw。
chromeドライバーはそれぞれのOSに合わせて用意されています。今回はwindows用をダウンロードします。
ダウンロードしたファイルはzipフォルダなので展開します。展開すると中に「chromedriver」というexeファイルが入っていますのでこのexeファイルを好きなフォルダに入れます。
今回は分かりやすいようにcドライブ直下に置きます。以下の画像のような構成です。
以上で準備完了です。あとはコードを書いて実行するだけです。
twitterにログインしてつぶやくBOTを作ってみよう
では実際にpythonのseleniumを使ってコードを書いていきます。今回はツイッターにログインして好きな文章をつぶやいてみるBOTを作ってみます。
まずはpythonコード全文です。
from selenium import webdriver
import time
#webdriverのパス
driver=webdriver.Chrome("c:/chromedriver.exe")
#ツイッターにアクセス
driver.get("https://twitter.com/login")
#ログインIDとパスワード
ids="ID"
pass_w="パスワード"
#つぶやく内容を記入
content="pythonのseleniumでつぶやいています"
#IDを入力
idss=driver.find_element_by_class_name("js-username-field")
idss.send_keys(ids)
#passwordを入力
pass2=driver.find_element_by_class_name("js-password-field")
pass2.send_keys(pass_w)
#ログインをクリック
login=driver.find_element_by_css_selector("#page-container> div > div.signin-wrapper > form > div.clearfix > button")
login.click()
#2秒待機
time.sleep(2)
#つぶやきを入力
tweet=driver.find_element_by_id("tweet-box-home-timeline")
tweet.send_keys(content)
time.sleep(1)
#ツイートボタンをクリック
tweet2=driver.find_element_by_class_name("tweeting-text")
tweet2.click()
time.sleep(5)
#webdriverを閉じる
driver.quit()
こんな感じに動きます。
編集する所は、ids=”ID” と pass_w=”パスワード” と
content=”pythonのseleniumでつぶやいています” の部分です。自分のIDとパスワードとつぶやく内容を入力します。”(引用符)は消さないでください。
seleniumのブラウザ操作の基本的な流れ
コード全文の流れをざっくり解説すると
- 必要なライブラリをインポート
- 指定したURLにアクセス
- 操作したい要素を検索
- 検索した要素を操作(テキストの入力やクリック)
- ブラウザを閉じる
という感じです。以下で詳しく解説していきます。
それぞれのpythonコード解説
必要なライブラリをインポート
from selenium import webdriver
これはseleniumを使うための呪文です。これがないとブラウザ操作ができません。
import time
[import time]は途中で使うtime.sleep()を使うための呪文です。time.sleep(10)というコードを書くことで10秒待機という意味になります。
driver = webdriver.Chrome("c:/chromedriver.exe")
これはブラウザを定義しています。(“”)内にダウンロードしたwebdriverのパスを記入します。今回はcドライブ直下に置きましたので、[c:/chromedriver.exe]と記入しています。
指定したURLにアクセス
driver.get("https://twitter.com/login")
driver.get(“URL”)で指定したURLにアクセスします。
操作したい要素を検索
idss=driver.find_element_by_class_name("js-username-field")
idss.send_keys(ids)
これはログイン画面のID入力欄に自分で設定したIDを記入するためのコードです。このあたりからCSSの知識が必要になってきます。
事前に対象のURLを開いて調べたい部分を右クリック→「検証」をクリックして要素を調べておく必要があります。
例えば[driver.find_element_by_class_name(“js-username-field”)]というのは「WEBページからcssのクラス[ js-username-field ]を探しなさい」というコードになります。
今回の場合、ログインIDの入力フォームの要素を調べると[ class=”js-username-field email-input js-initial-focus” ]となっていることが分かります。
これは入力フォームのclass属性が「
js-username-fieldかつemail-inputかつjs-initial-focusである 」という意味です。seleniumで要素を探す場合はこのうちの1つを指定すれば大丈夫です。
class属性から探す以外にもid属性やリンクテキストからも要素を取得できます。このあたりの詳細は逆引きseleniumクイックリファレンスをご覧くだい。
検索した要素を操作(テキストの入力やクリック)
[idss.send_keys(ids)]の部分はIDの入力フォームに自分で設定(ids=”ID”)したIDを入力するコードです。
また、login.click()は
login=driver.find_element_by_css_selector("#page-container > div > div.signin-wrapper > form > div.clearfix > button")
というコードで探してきたログインボタンをクリックしてログインするためのコードです。
ブラウザを閉じる
driver.quit()
このコードはブラウザを閉じるためのコードです。このコードでしっかり閉じないと裏で動いたままになってメモリを消費する可能性があるので忘れずに閉じましょう。
このコードを実行するには前述したとおり「anaconda prompt」で[cd .spyder-py3]から[python ファイル名.py]を入力してエンターを押すことで実行されます。
これであなたもパイソナー
以上でpythonインストールからseleniumによるブラウザ自動操作までが出来るようになりました。
あとは具体的なコードを勉強したりネットから拾ってきて組み合わせることでいろいろなプログラミングを作成することが出来ます。
今回のseleniumを使ってビットコインFAUCETサイトを自動化してみたのでこちらも参考にしてください。
pythonはseleniumのブラウザ操作の他にもWEBサイトスクレイピングや仮想通貨取引所のAPIを利用した自動売買BOT、アービトラージBOT、機械学習など出来ることが他にもたくさんあるので是非挑戦してみてください。
pythonのbot作成依頼も承ります。問い合わせページからどうぞ。
コメント
ALISから飛んできました。
すごく勉強になりました。
色々と参考になるblogですね。
コメントありがとうございます!ブログもALISも役立つ記事の更新を頑張っていきます!
とても参考になります。
今後も楽しみにしております。
freebitcoinの自動化素敵です!
ありがとうございます!何か不明な点があればお問い合わせくださいね^^