はじめに
###■背景
当社はベンチャーということもあり、人の入れ替わりが比較的多い。
また、社員は基本的に客先に常駐しており、案件が異なると全く顔を合わせないこともある。
「お互いに顔と名前が一致しない」という事態が多々起きていることを経営層が問題視し始めた。
一方で、入社時にはSNSに自己紹介記事を載せるが、色んな話題が飛び交っている内に古い記事は参照しにくくなっていた。
###■目的###
そこで、今いる社員の名簿を元に、Automagica
にて、記事のURLとスクショを自動収集するプログラムを作成し、出力結果を共有することで問題解決を図った。
###■捕捉
なお、Automagica
自体については、先人達の記事を参照されたい。
記事1:Automagica : ベルギー発Oakwood Technologies BVBA製のRPAの日本語解説
記事2:automagicaことはじめ
記事3:Python×業務効率化 Automagicaでブラウザを自動で動かしてみた
作ったもの
###■インプット
社員の氏名をリスト化したテキストファイル
###■プロセス
1、Chromを起動
2、記事検索ページに遷移し、「社員の氏名 自己紹介」で記事を検索
3、検索結果の最上位記事のリンクをクリック
4、該当ページのURLをURLリストに格納、及び、該当ページをスクショ保存
5、2~4を社員リストの分だけ繰り返し
6、URLリストをテキストファイルとして出力
###■アウトプット
・各社員紹介ページのスクショ
・各社員紹介ページのURL
コード
一部は社内情報の為マスキング。
from automagica import *
import time
#SNSの検索窓のxpath
xpath_SerachText = '//*[@id="Pagesearch_999"]/div/div/div/div/label/input'
xpath_SerachButton = '//*[@id="Pagesearch_999"]/div/div/div/div/button'
xpath_LoginID = '//*[@id="id"]'
xpath_LoginPass = '//*[@id="pass"]'
#ログイン情報
LoginID = 'LOGIN_ID'
LoginPass = 'LOGIN_Pass'
#URL格納リスト
url_list = []
#Chromeを起動してウィンドウ位置と大きさ調整
browser = ChromeBrowser()
browser.set_window_position(0, 0)
browser.set_window_size(1000, 600)
#SNSを立ち上げてログイン
browser.get('https://www.XXXXXXX.com')
browser.find_element_by_xpath(xpath_LoginID).send_keys(LoginID)
browser.find_element_by_xpath(xpath_LoginPass).send_keys(LoginPass)
time.sleep(1)
ClickOnPosition(200, 500)
#インプットファイルの行数分繰り返す
for ShainName in open("meibo.txt", "r"):
#改行コードを削除
ShainNameRstrip = ShainName.rstrip('\n')
#SNSで検索ページを開く
browser.get('https://www.XXXXXXX.com/YYYYYY')
#検索する内容
content = '社員紹介記事 ' + ShainNameRstrip
#検索窓を探して内容を検索
browser.find_element_by_xpath(xpath_SerachText).send_keys(content)
browser.find_element_by_xpath(xpath_SerachButton).click()
#検索結果の最上位のリンクをクリック
time.sleep(3)
ClickOnPosition(500, 200)
#スクショ保存、URL格納
time.sleep(3)
filename = ShainNameRstrip + '.png'
browser.get_screenshot_as_file(filename)
URL_content = ShainNameRstrip + ' ' + browser.current_url
url_ist.append(URL_content)
#リストに書き出し
WriteListToFile(url_list, 'URLlist.txt')
#ブラウザを閉じて終了
browser.close()