みなさん,こんにちは。
シンノユウキ(shinno1993)です。
RPA流行っていますよね.RPAは「Robotic Process Automation」 の略で,ロボットによる作業の自動化とでも説明できましょうか.昨今の働き方改革や人手不足によってあらゆる場面でその言葉を聞くようになりました.
私はRPAの積極的な活用には反対です.RPAを使わなきゃいけないような作業は,その作業内容そのものを改善する必要があると考えるからです.RPAを導入するよりもまずはその作業を見直すべきだと思います.また,たとえばRPAで複数のソフトウェアを強制的に連携させる場合,そのどちらかのソフトウェアの仕様などを見直すことで解決を目指すのが本来の姿でありましょう.つまり,RPAを積極的に推奨するよりは,先にやるべきことがあると思っています.
とはいえ,すべてをそれで片付けるわけにはいかないですよね.作業内容を変更する手続きのほうが面倒だし,ソフトの仕様変更なんてどれだけお金がかかるかわかったもんじゃない.仕事は待ってくれないので非合理だと感じながらも,眼の前の仕事を力技で片付けなきゃいけない時もあるでしょう.
そう考えた際,RPAツールを導入してみるのも1つの手段となるでしょう.「RPA」って言葉を使うだけで納得してしまう人も,残念ながら一定数存在しますしね.導入も楽です.また社内全部に導入できなくても,自分の身の回りの作業だけをコッソリとやるのであれば俄然やる気が出てくるのではないでしょうか.
しかし,いざRPA使ってみようと世の中のツールを見渡してみると無料のものはほとんどなく,とても高額だったりします.「そんな高い金払えないよ!」って方は今回紹介するAutomagicaというプラットフォームを使ってみてください.以下で,簡単にAutomagicaについて紹介し,始め方も解説したいと思います.
では行きましょう!
Automagicaとは?
公式ドキュメント
AutomagicaはPythonで使用できるオープンソースのRPAプラットフォームです.公式サイトは以下です:
チュートリアル的な詳しい使い方の紹介などは,以下のGithubのページをご覧になると良いでしょう:
さらに,これらとは別に公式のドキュメントも存在します.もはやどれを見たら良いのかわからないですが,大体はこちらのドキュメントを読むと良いと思います:
含まれるライブラリ
このAutomagicaには以下のライブラリが抱合されています.Python自動化の有名所がおさえられており,夢が広がるラインナップとなっています:
- requests
- PyAutoGUI
- Selenium
- OpenPyXL
- python-docx
- pywin32
- PyPDF2
- Psutil
- Pillow
- Faker
- Psutil
- Keyring
- Cryptography
- pyad
- Icons8 Line Awesome
- pysnmp and special thanks to quicksnmp
- pandas
- Keyboard
- Babel
- Click
最も簡単な使い方
では最も簡単な使い方を紹介します.Automagicaで指定のワードで検索してみます.
1.Automagicaをインストールする
Automagicaのインストーラーは,公式ページからダウンロードできます。
下記の画面が表示されますので,まずはAutomagica Portalのアカウントを作成しましょう:
- 「Sign up now」をクリックします
- E-mailを入力します
- 任意のパスワードを入力します
- 2で入力したパスワードを再度入力します
- 「Sign up」をクリックします
アカウントが正常に作成できると,下記の画面になります。Windows用のインストーラをダウンロードしましょう:
- 「Get Automagica for Windows」をクリックします
これでインストーラがダウンロードできました。ダウンロードフォルダ等にAutomagica_Setupファイルがダウンロードできていると思いますので,これを実行します。
- Automagica_Setupファイルをダブルクリック等で実行します
- 「ユーザーアカウント制御」等の注意メッセージが表示されますが,説明をよく読み「はい」を押します
- インストールが開始されます
下記のメッセージが表示されると完了です:
2.Automagica Labを起動してみる
Automagicaの総合開発環境(IDE)であるAutomagica Labを起動しましょう。Automagica Labでは,Jupyter Notebooksに基づいた開発環境でRPAを構築できます。
下記のコマンドでAutomagica Labを起動できます:
automagica lab new
起動後,[New]→[Pyhon3]から新しいファイルを開いて始めましょう。
3.ChromeでGoogle検索してみる
最も簡単なコードとしてブラウザでGoogle検索するためのコードを紹介します.
from automagica import *
browser = Chrome()
browser.browse_to('https://www.google.com/?hl=ja')
browser.find_element_by_xpath('//*[@id="tsf"]/div[2]/div[1]/div[1]/div/div[2]/input').send_keys('みんな栄養に頼りすぎてる')
browser.find_element_by_xpath('//*[@id="tsf"]/div[2]/div[1]/div[3]/center/input[1]').submit()
wait(1)
browser.quit()
AutomagicaをインポートしGoogle検索のサイトでテキストを入力→Submitという流れです.要素の指定にはxpathを使用していますが,idやclassなどを指定することもできます.
Pubmedから論文の情報を取得しExcelに貼り付ける
次はもう少し実践的なコードを紹介します.Pubmedで指定のワードで検索し,論文のタイトルや著者,アブストラクトをExcelに貼り付けるというコードです.以下のようになります:
from automagica import *
browser = Chrome()
browser.get('https://www.ncbi.nlm.nih.gov/pubmed/')
browser.find_element_by_id('id_term').send_keys('yuki shinno')
browser.find_element_by_class_name('search-btn').submit()
data = []
articles = browser.by_classes('docsum-title')
article_count = 0
for article in articles:
browser.by_classes('docsum-title')[article_count].click()
summary = {}
summary['title'] = browser.by_class('heading-title').text
summary['author'] = browser.by_class('authors').text
summary['abst'] = browser.by_id('enc-abstract').text
data.append(summary)
browser.back()
article_count+=1
excel = ExcelFile(file_path="Excelファイルのパス")
i = 2
for summary in data:
excel.write_cell(column=1, row=i, value=summary['title'], auto_save=True)
excel.write_cell(column=2, row=i, value=summary['author'], auto_save=True)
excel.write_cell(column=3, row=i, value=summary['abst'], auto_save=True)
i+=1
これを動かしてみると以下のようになります:
そして,以下のようにExcelファイルに書き込まれます:
PubMedで"yuki shinno"検索しても5件しかヒットしませんでした.全国のyuki shinnoさん,頑張りましょう!
解説は割愛します.が,いろいろなことができそうなことが伝わったかと思います.なお,PubMedはテキストファイルやCSVなどで論文リストをDLできますし,もっといえば検索のためのAPIも提供されています.ので,本来であればこっちを使うべきだということは補足しておきます.
まとめ
今回はPythonから使えるRPAツール:Automagicaの始め方と簡単な使用例を紹介しました.Pythonは画像認識などとも相性がいいため,組み合わせることでいろいろな事ができそうで夢が広がるなぁと感じました.