PythonでRPAツール:Automagicaを使ってみる|PubMed検索のサンプルコードも紹介します

Python

みなさん,こんにちは.
シンノユウキ(y_stadio)です.

RPA流行っていますよね.RPAは「Robotic Process Automation」 の略で,ロボットによる作業の自動化とでも説明できましょうか.昨今の働き方改革や人手不足によってあらゆる場面でその言葉を聞くようになりました.

私はRPAの積極的な活用には反対です.RPAを使わなきゃいけないような作業は,その作業内容そのものを改善する必要があると考えるからです.RPAを導入するよりもまずはその作業を見直すべきだと思います.また,たとえばRPAで複数のソフトウェアを強制的に連携させる場合,そのどちらかのソフトウェアの仕様などを見直すことで解決を目指すのが本来の姿でありましょう.つまり,RPAを積極的に推奨するよりは,先にやるべきことがあると思っています.

とはいえ,すべてをそれで片付けるわけにはいかないですよね.作業内容を変更する手続きのほうが面倒だし,ソフトの仕様変更なんてどれだけお金がかかるかわかったもんじゃない.仕事は待ってくれないので非合理だと感じながらも,眼の前の仕事を力技で片付けなきゃいけない時もあるでしょう.

そう考えた際,RPAツールを導入してみるのも1つの手段となるでしょう.「RPA」って言葉を使うだけで納得してしまう人も,残念ながら一定数存在しますしね.導入も楽です.また社内全部に導入できなくても,自分の身の回りの作業だけをコッソリとやるのであれば俄然やる気が出てくるのではないでしょうか.

しかし,いざRPA使ってみようと世の中のツールを見渡してみると無料のものはほとんどなく,とても高額だったりします.「そんな高い金払えないよ!」って方は今回紹介するAutomagicaというプラットフォームを使ってみてください.以下で,簡単にAutomagicaについて紹介し,始め方も解説したいと思います.

では行きましょう!

Automagicaとは?

公式ドキュメント

AutomagicaはPythonで使用できるオープンソースのRPAプラットフォームです.公式サイトは以下です:

チュートリアル的な詳しい使い方の紹介などは,以下のGithubのページをご覧になると良いでしょう:

さらに,これらとは別に公式のドキュメントも存在します.もはやどれを見たら良いのかわからないですが,大体はこちらのドキュメントを読むと良いと思います:

含まれるライブラリ

このAutomagicaには以下のライブラリが抱合されています.Python自動化の有名所がおさえられており,夢が広がるラインナップとなっています:

最も簡単な使い方

では最も簡単な使い方を紹介します.Automagicaで指定のワードで検索してみます.

1.ライブラリをインストール

まずはライブラリをインストールしましょう.pipを使ってインストールする場合,Githubからインストールします.以下を実行してください:

pip install https://github.com/OakwoodAI/automagica/tarball/master

2.ChromeでGoogle検索してみる

最も簡単なコードとしてブラウザでGoogle検索するためのコードを紹介します.

from automagica import *

browser = ChromeBrowser()
browser.get('https://www.google.com/?hl=ja')
browser.find_element_by_xpath('//*[@id="tsf"]/div[2]/div/div[1]/div/div[1]/input').send_keys('みんな栄養に頼りすぎてる')
browser.find_element_by_xpath('//*[@id="tsf"]/div[2]/div/div[3]/center/input[1]').submit()
Wait(1)
browser.quit()

AutomagicaをインポートしGoogle検索のサイトでテキストを入力→Submitという流れです.要素の指定にはxpathを使用していますが,idやclassなどを指定することもできます.

Pubmedから論文の情報を取得しExcelに貼り付ける

次はもう少し実践的なコードを紹介します.Pubmedで指定のワードで検索し,論文のタイトルや著者,アブストラクトをExcelに貼り付けるというコードです.以下のようになります:

from automagica import *

browser = ChromeBrowser()
browser.get('https://www.ncbi.nlm.nih.gov/pubmed/')

browser.find_element_by_id('term').send_keys('yuki shinno')
browser.find_element_by_id('search').submit()

data = []
articles = browser.find_elements_by_css_selector('.rprt p.title a')
article_count = 0
for article in articles:
    browser.find_elements_by_css_selector('.rprt p.title a')[article_count].click()
    Wait(1)
    summary = {}
    summary['title'] = browser.find_elements_by_tag_name('h1')[1].text
    summary['author'] = browser.find_element_by_class_name('auths').text
    summary['abst'] = browser.find_element_by_class_name('abstr').text
    data.append(summary)
    browser.back()
    Wait(1)
    article_count+=1

excel_path = 'エクセルファイルのパス'
i = 2
for summary in data:
    ExcelWriteRowCol(excel_path, r=i, c=1, write_value=summary['title'])
    ExcelWriteRowCol(excel_path, r=i, c=2, write_value=summary['author'])
    ExcelWriteRowCol(excel_path, r=i, c=3, write_value=summary['abst'])
    i+=1

これを動かしてみると以下のようになります:

そして,以下のようにExcelファイルに書き込まれます:

PubMedで"yuki shinno"検索しても5件しかヒットしませんでした.全国のyuki shinnoさん,頑張りましょう!

解説は割愛します.が,いろいろなことができそうなことが伝わったかと思います.なお,PubMedはテキストファイルやCSVなどで論文リストをDLできますし,もっといえば検索のためのAPIも提供されています.ので,本来であればこっちを使うべきだということは補足しておきます.

まとめ

今回はPythonから使えるRPAツール:Automagicaの始め方と簡単な使用例を紹介しました.Pythonは画像認識などとも相性がいいため,組み合わせることでいろいろな事ができそうで夢が広がるなぁと感じました.

この記事の著者
管理栄養士/修士(人間生活化学)

シンノユウキです。管理栄養士/修士(人間生活科学)/ 栄養系の出版社で勤務/ 会社員ブロガーです.科学的に正しくかつ妥当なことをお伝えしていきます.プログラミングが趣味なので関連記事も書いています.

シンノユウキをフォローする
Python
シンノユウキをフォローする
みんな栄養に頼りすぎてる
タイトルとURLをコピーしました