最後に,各コースへのリンクを巡回しながら,コースごとに主な講義の名称を取得したい.まず,ここではステップ1として,各コースへのリンク情報を取得するコードを記述します.目的のページには様々なリンクが設置されているので,<a>
タグを取得すると不要なリンクも多数取得してしまう.HTMLソースを確認すると,<div class="box">
の中にある <a>
タグを取得できれば良さそうです.
したがって,17行目で <div class="box">
タグをすべて取得し,18行目からのfor
ループによって,<div class="box">
タグ内にある<h3>
と<a>
を取得して辞書に格納しています.
リンク情報を取得して辞書に格納する (manager-selenium06.py)
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By
import time # 時間を操作するPythonの標準モジュール
# 操作するブラウザを開く
chrome_service=Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=chrome_service)
# driver = webdriver.Chrome('C:\\Users\\bk182005\\Documents\\selenium\\chromedriver.exe') # 手動インストールを使う場合
# 操作するページを開く
driver.get('https://kobegakuin-biz.jp/course/')
# 3秒待つ
time.sleep(3)
# 空の辞書を準備
courses = {}
# class="box" の要素をすべて検索する
elms = driver.find_elements(By.CLASS_NAME, 'box')
for elm in elms:
course_title = elm.find_element(By.TAG_NAME, 'h3').text
url = elm.find_element(By.TAG_NAME, 'a').get_attribute('href')
# 辞書に追加
courses[course_title] = url
# 辞書の内容を表示
print(courses)
# 3秒待つ
time.sleep(3)
# ブラウザを閉じる
driver.close()
上のコードを実行すると,キーに「コース名称」,値に「URL」がセットされた辞書が作成されたことを確認できます.
(base) C:\Users\bk182005\Documents\python>python manager-selenium06.py ⏎
DevTools listening on ws://127.0.0.1:60250/devtools/browser/0f451e0c-abdf-4075-8af8-1e1aa2762379
{'経営・商学コース': 'https://kobegakuin-biz.jp/course/business.html', '会計コース': 'https://kobegakuin-biz.jp/course/accounting.html', '経営情報科学コース': 'https://kobegakuin-biz.jp/course/solution.html', '専門語学・海外研修': 'https://kobegakuin-biz.jp/course/global.html', 'スポーツサイエンスユニット': 'http://www.ge.kobegakuin.ac.jp/~kyotsu/feature/sports/index.html'}
(base) C:\Users\bk182005\Documents\python>
次のページでは,この辞書を参照しながら複数のページを巡回します.