【初心者のpython入門】seleniumでログイン自動化!〜Twitter編〜





現在、TwitterのAPIを利用して様々なツールが活躍していますが、プログラミング初心者の人からすれば、「TwitterAPIの利用方法がいまいち分からないし、API取得も厳しくなって面倒。。。」そう感じる人もいるかもしれません。

そこで、今回の記事ではpythonのseleniumモジュールを利用して、APIなしで自動化を図れないか実践していきます。

また、ログインだけでなく、今後はフォローやいいね!も自動化が行えるか実践していきます。

本記事では、seleniumの解説、ログイン自動化までの内容を記載します。

 

 
 
また、pythonをこれから本格的に学習する人は、目的を持って学習する必要があります。
 
 
こちらでは、3ヶ月間を利用して基礎学習から稼ぐまでの学習ロードマップをまとめてみましたので、本記事と合わせて一読して頂けたら幸いです。
 
 

プログラミング学習の始め方〜3ヶ月で稼ぐには〜

2019.11.15
 
 
更に実践的な稼ぎ方についてはこちらの記事をご参照ください。
 
 

【初心者必読!】プログラミング言語Pythonを活用して稼いでみた〜ココナラ編〜

2019.11.04
 
 

汎用性の広いPythonを0から習得するためのフロー及び実際にPythonで開発を行い開発案件を獲得するまでの筋道について解説しているチュートリアル資料と

コーディングの参考となる実際にPythonを使って作ったツールのソースコードを無料で配布していますので、こちらも併せてご覧ください。

初心者・入門者でも30日間で学習できるおすすめPython学習方法

 

おすすめのプログラミングスクールの比較・特徴をまとめた記事を執筆しております。挫折することなく一直線にエンジニアを短期集中で目指している人はこちらから確認してください。

【比較表・無料体験あり】おすすめのプログラミングスクール3選!オンライン学習で完結!

プログラミングを学ぶ上で作りたいものがない人へ提案させてください

 

seleniumとは?

みなさんがよく利用するウェブブラウザがあると思います。

多くの人はGoogle Chromeを扱っていると思いますが、そのブラウザにおいて通常は、人の手で操作していると思います。

seleniumとは、そのブラウザ上の操作をプログラムによって自動的に操作するためのものになります。

seleniumを利用したブラウザ操作は、Web上のシステムの自動テストやスクレイピング等に利用されます。

また、ブラウザ上でのクリックなども行えることから、応用範囲は幅広く、利用価値は高いです。

今回は、そんなseleniumを利用した自動操作を試していきますが、簡単なテストとして少しでも利用しそうなものを題材にしようと思い、Twitterのログインを例にしていきます。

 

seleniumに必要な動作環境

ここでは、python・seleniumモジュール・webdriverの三つから動作するプログラムを構成していきます。

また、本プログラムの動作環境としてMac環境を利用しますが、Windows環境でも同様に実施できるかと思います。

 

pythonのインストール

pythonの公式サイトからpythonをダウンロードします。

公式サイトにて、Mac・Windows版があるので、お使いのPC環境に合わせてダウンロードとインストールを実行してください。

 

seleniumのインストール

お使いのPC環境がMacであればターミナル、Windowsであればコマンドプロンプトを起動させてください。

起動後は、以下のコマンドを入力して実行しましょう。

pip install selenium

このコマンドを実行後、successfully installedが出力されれば、インストール完了となります。

 

webdriverのインストール

ここでは、Google chromeのwebdriverをインストールします。

Google Chrome用のwebdriverのダウンロードサイトからインストーラーを取得しましょう。

また、ダウンロードする際に各OSで利用できるよう分類されているので、お使いのPC環境に沿ってインストーラーを取得しましょう。

インストールしたドライバーの配置は、任意のディレクトリに配置しましょう。

ここでは、分かりやすくデスクトップ上に配置して利用していきます。

 

seleniumによる本プログラムの解説

ここでは、ブロックに分けてコードの解説をします。

 

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
import time

上記のコードでは、seleniumのインポート及び利用する各種モジュール(webdriver)を指定しています。
また、timeモジュールも利用します。

ブラウザ上の操作にて、画面表示が確実に行えるよう時間指定を行うためです。

 

# ユーザー名/メールアドレス
username = input("mail-address:")
# パスワード
password = input("password:")

ここでは、Twitterのアカウントを複数所持している可能性も考慮して、input関数にて指定できるようにしています。

 

driver = webdriver.Chrome(r"webdriverのディレクトリを指定")
driver.get("https://twitter.com/")

driver.find_element_by_class_name('StaticLoggedOutHomePage-buttonLogin').click()
time.sleep(3)
username_box = driver.find_element_by_xpath('//*[@id="page-container"]/div/div[1]/form/fieldset/div[1]/input')
password_box = driver.find_element_by_xpath('//*[@id="page-container"]/div/div[1]/form/fieldset/div[2]/input')

# ユーザ名とパスワードをインプットする
username_box.send_keys(username)
password_box.send_keys(password)

ここでは、driver変数にて、利用するwebdriverのパスを指定して起動させます。
指定するURLはもちろんツイッターです。

その後、findメソッドを利用して各要素を取得し、クリックや入力を実行していきます。

この時にクラスネームやxpath等を指定する必要があります。
これらを確かめて指定する必要があります。

その場合、ブラウザ上で操作を行いたい画面にて、デベロッパーツールを起動し、各種必要なクラスネームやxpath等を取得して利用します。

そして、入力したユーザー名及びパスワードを利用してログインします。

 

# ログインボタンを探す
login_button = driver.find_element_by_xpath('//*[@id="page-container"]/div/div[1]/form/div[2]/button')
#ログインボタンをクリック
login_button.click()

最後に、ログインボタンをクリックするためのコードを記述して完了です。

以下に一連のプログラムの全体コードを記載しておきます。

 

# coding: utf-8

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
import time

# ユーザー名/メールアドレス
username = input("mail-address:")
# パスワード
password = input("password:")

driver = webdriver.Chrome(r"webdriverのディレクトリを指定")
driver.get("https://twitter.com/")

driver.find_element_by_class_name('StaticLoggedOutHomePage-buttonLogin').click()
time.sleep(3)
username_box = driver.find_element_by_xpath('//*[@id="page-container"]/div/div[1]/form/fieldset/div[1]/input')
password_box = driver.find_element_by_xpath('//*[@id="page-container"]/div/div[1]/form/fieldset/div[2]/input')

# ユーザ名とパスワードをインプットする
username_box.send_keys(username)
password_box.send_keys(password)

# ログインボタンを探す
login_button = driver.find_element_by_xpath('//*[@id="page-container"]/div/div[1]/form/div[2]/button')
#ログインボタンをクリック
login_button.click()

 

おすすめしたいプログラミング学習プラットフォーム

独学・未経験から始める人も少なくないので、プログラミング学習の継続や学習を続けたスキルアップにはそれなりのハードルが設けられています。

また、プログラミング学習においても、学習者によってはすでに学習対象とするプログラミング言語や狙っている分野が存在するかもしれません。

そのため、さらに費用を抑えてピンポイント学習に取り組みたいと考える人も少なくありません。

そこで費用を抑えた上でプログラミングに取り組みたい人へ、オススメしたいプログラミング学習プラットフォームを紹介していきます。

 

プログラミング学習プラットフォーム – Udemy

Udemyは、世界最大級のオンライン学習プラットフォームとなります。

世界中の学びたい人と教えたい人をオンラインでつなぐサービスとなっており、Udemyは米国Udemy,Inc.が運営するプラットフォームで日本ではベネッセが事業パートナーとして協業をしています。

<利用者実績>
受講者数:約3000万人
講師数:約42000人
講座数:約10万

 

お手頃な価格帯の豊富なコンテンツ

1講座あたり数千~数万円程度で実践的なスキルアップが可能となっています。

講座は一度購入すれば視聴期限なく受講することができます。

また、30日返金保証もついているので安心して始めることができます。

 

学びやすい多彩な機能

0.5~2倍の変速機能で自分のペースで受講を可能にする機能や、専用アプリを利用することでスマホからオフライン環境でも学習対象となる講座の視聴が可能です。

また、講師にアプリ・サイト等の直接掲示板から質問ができるため、疑問を解決し自学自習をサポートしています。

 

どんな人が対象者になるのか?

 

Udemyを検討するにあたって、次のような内容で悩んでいるあるいは目的としている人にオススメすることができます。

・習得したいプログラミングスキルが明確で、年収アップのために学習しているエンジニア

・テクノロジー、ビジネスに関するスキルアップに関心が高い人(特にAI・機械学習を学んでスキルアップを検討されている人)

・Adobeのソフトなどウェブデザインを学びたいと考えている人

・仕事に関連して、スキル獲得や資格取得が必須な人

・転職・再就職・副業のために自己投資を検討している人

これらの内容に当てはまる人は、利用しやすい環境が整っています。

 

Udemyの主要コース

Udemyには数多くの講座ありますが、分野ごとに学習対象を区分けしておきましょう。

登録してすぐにでも学習が始められるので、特化した分野を以下にまとめておきます。

プログラミング学習は時間を無駄にせず、素早く学習を始めることも大切なので、一分一秒でも習得したいプログラミングスキルに時間を費やしましょう。

世界最大級のオンライン学習サイトUdemy
※講座数10万の中から取り組みたいものが分野別・レベル別で見つかります

Python 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイルを学ぶオンライン講座
※実践的なPythonスキルを身に付けたい人におすすめ

 

最後に

実行していただいた人は、どのようにseleniumにてブラウザ上の操作が自動化されているか確認できたかと思います。

このプログラムを応用して、FacebookやInstagramなどにも利用できそうです。

また、次回はこのプログラムを利用しTwitter上にて、検索キーワードを用いてアカウントを検索し、seleniumでフォローを行なっていきたいと思います。

pythonを利用することで非常に簡単なログイン自動化のプログラムを作成することができました。

最後まで一読していただき、ありがとうございました。



ABOUTこの記事をかいた人

sugi

大学卒業後、IT企業に就職を果たす。システム開発・人工知能に触れながら大手企業と業務をこなす。2年半後脱サラし、現在フリーランス活動中。 2019年2月から起業する予定。 自社サービス及び製品を開発し、売り上げを立てている。