このプログラムの趣旨
前回のYamahaルータのリリース情報と同様に、Cisco機器の推奨バージョン調査を自動化してみた。Python : 【Python】RTXのリリースノートから情報を自動取得してCSVに書き出す
プログラム処理のざっくり概要
・ある機器のソフトウェアリリースURLをCSV(device_list.csv)から受け取る ・受け取ったURLへアクセス ・サイト内の推奨バージョンに付与されているクラス要素を取得して、テキスト情報を取得 ・CSVの行数分実行し、結果をリストに格納 ・リストの中身をCSVへ出力プログラムの中身
```Cisco_version_check.py from selenium import webdriver from selenium.webdriver.chrome.options import Options from subprocess import CREATE_NO_WINDOW import csv import datetime import timeヘッドレスモードにするための準備
options = Options()
options.add_argument('--headless')
ブラウザ起動
driver = webdriver.Chrome(executable_path='C:\chromedriver_win32\chromedriver.exe', options=options)
結果を書き出すCSVファイル名の設定
today_date = datetime.date.today()
result_file = "推奨バージョン_" + str(today_date) + ".csv"
with open(result_file,'a', newline='') as result_csv:
# csv書き込み用のwriter設定
writer = csv.writer(result_csv)
with open('.\\device_list.csv') as f:
#csvファイルを2行目から読み込み(ヘッダースキップ)
reader = csv.reader(f)
next(reader)
for row in reader:
# CSVからURLを取得してページ遷移
driver.get(row[1])
time.sleep(2)
# デバイス名をCSVから取得して、推奨バージョン情報を取得
version_info = driver.find_element_by_class_name('selectedRelease')
writer.writerow([row[0] + "の推奨バージョン:", version_info.text])
# プロンプトにも表示しておく
print(row[0] + "の推奨バージョン:" + version_info.text)
driver.close()
print("書き出しが完了しました。")
Cisco機器の推奨バージョンは、class="selectedRelease"の指定があるためその要素を指定してます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316676/d22e11d8-b926-48e1-6812-e35ec459f07f.png)
device_list.csvは以下のように記載。
※1行目は読み込みスキップされます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316676/e826bf88-1694-48fc-964f-7a2ff19f808f.png)
URLについては、サイトからコピーしてくると
のように、"release/"の後にバージョンが載ってますが、その部分は削除して記載してください。
Cisco_version_check.pyを実行して出力されるCSVファイルは以下のようになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316676/94cf5d07-133b-7055-5a81-4bbeac32f67d.png)
定期的に推奨バージョンの確認をする作業がある場合、最初にURLだけ設定しておけば次回以降の作業がCSVチェックだけになる。
あとはPyinstallerでEXEファイル化すれば1クリックで実行可能になるので、らくちんですね。