概要
就活つらい。
就活を始めると企業のサイトに登録しなきゃですが、複数の企業に登録してたら全部を確認するのが結構大変。というか面倒くさい。
なるべく楽に生きたいので、Seleniumで企業のマイページにログインしていきます。
就活、マジでやばいです。夏のインターンどこも行ってない。何とかなれ。
志望企業といえど、マイページに行くの面倒ですよね
私はめっちゃ面倒です。
というか研究と両立できない。勘弁してください。
Seleniumで全部できるやん
Excelに必要な情報入れれば、あとはSeleniumで全部操作できるじゃんと思いました。
以下がそのExcelです。(見本)
マイページにログインするサイトのURLと、自分のID、パスワード、IDとパスワードを入力するテキストボックスのXpathと、ログインボタンのXpathをExcelに貯めます。
Xpathを調べるのがちょっと面倒臭いですが、一度だけなので頑張って取ってくる。
for文で回そうとしたので、xpathがいいかなって思いました。
あと確実に、パスワードを貯めるとか何となくセキュリティ的によくないと思うので、そのへん許せる人だけやってね。
#環境
エディタ:Visual Studio Code
Python 3.12.2
selenium 4.24.0
pandas 2.2.2(Excelからデータを持ってくるため)
Seleniumのwebdriverはこれを見てやりました。(多分……)
https://qiita.com/sagami1991/items/fdcc454e4ffe70a07507
#コード
詳しくは知らないのですが、ウェブ操作自動化系は相手のサーバ側に負荷がかかってしまう可能性があるので、使い方には気を付けましょう。
そこは自己責任ということで…
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
import os
import signal
import pandas as pd
# Excelファイルは同じ階層に置いてるので
df = pd.read_excel('job.xlsx', sheet_name='id')
url = df.iloc[:,1].tolist()
id = df.iloc[:,2].tolist()
pwd = df.iloc[:,3].tolist()
id_box = df.iloc[:,4].tolist()
pwd_box = df.iloc[:,5].tolist()
loginbtn = df.iloc[:,6].tolist()
browser = webdriver.Chrome()
def login(num):
browser.get(url[num])
browser.implicitly_wait(5)
id_target = browser.find_element(By.XPATH, id_box[num])
id_target.send_keys(id[num])
time.sleep(0.2) # 負荷はかけたくないよという気持ちの表れ。どのくらい待てばいいか正直分かってない。ごめんなさい。
pwd_target = browser.find_element(By.XPATH, pwd_box[num])
pwd_target.send_keys(pwd[num])
time.sleep(0.2)
btn = browser.find_element(By.XPATH, loginbtn[num])
btn.click()
try:
for i in range(len(url)):
login(i)
if i<(len(url)-1):
#新規タブを作成して、そのタブをアクティブにする。
browser.switch_to.new_window('tab')
finally:
# プログラム終了後にも、ページは開いたまま
os.kill(browser.service.process.pid,signal.SIGTERM)
プログラムの良し悪しはおいておいて、実行したら全部のサイトでログインができます。
終わり
初めてQiitaに投稿しますが、「この程度のこと、書き起こす必要なくないか…?」と思いながら後半書きました。ヤバいところがあれば教えてください…