はじめに
私はAWS SAPを所持しており、現在DOP-C02の勉強をしています。
勉強の際になるべく勉強にお金をかけずにやれないかと考えたところ、exam〇opicsにたどり着きました。
このサイトはAWSやAzure等のベンダー試験問題が載っている素晴らしいサイトなのですが、
しばらく問題と解いていると「登録しろ」といったメッセージが表示され問題が見れなくなります。
何とか登録しないで問題を解くことができないか調べていたところ、以下のページに裏技?が記載されていました。
このページの裏技を使えば無料で問題を解き続けることができるのでは・・・?
ということで、スクレイピングで特定の試験問題のURLを収集するコードを書きました。
注意事項
コードを動作させる場合、自己責任で使用してください。
サンプルコード
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By
# chromedriverを自動的にインストールし、Webブラウザを起動する。
driver = webdriver.Chrome(ChromeDriverManager().install())
# examtopicsのURL
# ※ここではAWSの試験を指定しているため、他の試験を検索する場合はURLを変更すること
url = 'https://www.examtopics.com/discussions/amazon'
# urlが続く間繰り返す
while(url != ''):
# ページを開く
driver.get(url)
# 要素を取得
elements = driver.find_elements(By.CLASS_NAME, 'discussion-link')
# 取得した要素を処理する
for element in elements:
# 取得した要素から、特定の試験を含むものを抽出
# ※ここで取得したい試験のキーワードを指定する
if ( '取得したい試験のキーワード' in element.text ):
url = element.get_attribute('href')
print('url:' + url)
# 次ページがあるか確認
elements_btn = driver.find_elements(By.CLASS_NAME, 'btn-sm')
# 取得した要素を処理する(次ページのURLを探す)
url = ''
for element_btn in elements_btn:
if ( 'Next' in element_btn.text ):
url = element_btn.get_attribute('href')
break
# ブラウザを閉じる。
driver.quit()
print('完了しました')
まとめ
今回はexam〇opicsから特定の試験問題URLを抽出するスクリプトを紹介しました。
キーワード指定を変更するだけで他の試験問題が抽出できるため、応用がきくかと思います。
この記事が誰かの参考になれば幸いです。