Help us understand the problem. What is going on with this article?

Python×Automagica:社員紹介記事を自動収集した話

はじめに

■背景

当社はベンチャーということもあり、人の入れ替わりが比較的多い。
また、社員は基本的に客先に常駐しており、案件が異なると全く顔を合わせないこともある。
「お互いに顔と名前が一致しない」という事態が多々起きていることを経営層が問題視し始めた。

一方で、入社時には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

コード

一部は社内情報の為マスキング。

search_shain_article.py
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()

結果

スクショ達

image.png
これをばら撒くことで、顔と名前とどんな人かを全員で共有出来た(はず)。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away