Qiitaに載ってあったソースコードをそのままコピー
したら以下のようなエラーが発生しました。内容はDアニメストアをスクレイピング
して人気ランキングを作るというものです。
URLは
リンク内容
です。エラーの内容は、白い画像が一瞬でてきてすぐに消えるというものです。
chromedriver.exeをフルパスで指定しました。
発生している問題・エラーメッセージ
Traceback (most recent call last):
File "C:/Users/PycharmProjects/sampleproject2/helloworld3.py", line 12, in <module>
driver = webdriver.Chrome(executable_path=r"C:\Users\PycharmProjects\sampleproject2\chromedriver.exe")
File "C:\Users\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 81, in init
desired_capabilities=desired_capabilities)
File "C:\Users\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 157, in init
self.start_session(capabilities, browser_profile)
File "C:\Users\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 252, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "C:\Users\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Users\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 80
該当のソースコード
from selenium import webdriver from bs4 import BeautifulSoup from time import sleep import csv # リンク文字列 hiragana_list = [ "あ", "い", "う", "え", "お", "か", "き", "く", "け", "こ", "さ", "し", "す", "せ", "そ", "た", "ち", "つ", "て", "と", "な", "に", "ぬ", "ね", "の", "は", "ひ", "ふ", "へ", "ほ", "ま", "み", "む", "め", "も", "や", "ゆ", "よ", "ら", "り", "る", "れ", "ろ", "わ", "を", "ん" ] driver = webdriver.Chrome(executable_path=r"C:\Users\PycharmProjects\sampleproject2\chromedriver.exe") driver.get("https://anime.dmkt-sp.jp/animestore/c_all_pc?initialCollectionKey=1") results = {} for hiragana in hiragana_list: # 最初のアクセス時以外、五十音順にクリックで遷移 if hiragana != "あ": continue_link = driver.find_element_by_link_text(hiragana) continue_link.click() html01 = driver.page_source # 最後までページスクロール while 1: driver.execute_script("window.scrollTo(0, document.body.scrollHeight);") sleep(1) html02 = driver.page_source if html01 != html02: html01 = html02 else: break soup = BeautifulSoup(html01, "html.parser") titleAndFavoriteCounts = soup.find_all(class_='textContainerIn') # {アニメタイトル: ファボ数} for titleAndFavoriteCount in titleAndFavoriteCounts: title = titleAndFavoriteCount.find(class_='ui-clamp webkit2LineClamp').get_text() favoriteCount = int(titleAndFavoriteCount.find(class_='favoriteCount').get_text()) results[title] = favoriteCount driver.close() driver.quit() sorted_results = {} # 降順にソート for k, v in sorted(results.items(), key=lambda x: x[1], reverse=True): sorted_results[k] = v field_names = ['anime_title', 'favorite_count'] # csv出力 with open("anime_ranking.csv", "w") as f: writer = csv.writer(f, delimiter=';') # ヘッダー writer.writerow(field_names) # 各行 for anime_title, favorite_count in sorted_results.items(): writer.writerow((anime_title, favorite_count))
補足情報
hiragana_listとanime_titleとanime_ranking
のアンダーバーの前に波線がかかっております。
回答4件
あなたの回答
tips
プレビュー