質問するログイン新規登録

Q&A

解決済

1回答

519閲覧

Pythonでchrome使用してのwebスクレイピングでエラーが発生する

yuya_i

総合スコア10

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2023/07/28 08:05

0

0

先日まで普通に使用できていた下記のコードが急に使用できなくなり
ネットで原因を調べていたところ、下記のwebにページに情報が掲載されていました。
https://javeo.jp/error_webdriver_manager/

原因は分かったのですが解決策が見つからず困っております。
どうかお力を貸して下さい。

chromeのバージョン 115.0.5790.110
関係あると思われるライブラリ
chromedriver-binaryのバージョン115.0.5790.102
selenium 4.10.0
webdriver-manager 4.0.0

chromedriver-binaryのバージョンを115.0.5790.110にすればいいじゃんと思われるかもしれませんがコマンドプロンプトで
chromedriver-binary==115.0.5790.110と実行しても
ERROR: Could not find a version that satisfies the requirement chromedriver-binary==
というコードのあとに使用できるバージョンが表示されるだけです。
115.0.5790.110はありません。

chromedriver-binaryが115.0.5790.110にできれば解決だと思うのですが、なにかいい方法など知っていますか?
現状では下記コードのoverview = browser.find_element_by_id("SelDep")の部分で処理がエラーになってしまいます。
やりたい事は上記コード部分でエラーが起きないようにしたいです。

使用PC:Windows11 64ビット
Pythonのバージョン Python 3.10.11

from selenium import webdriver from selenium.webdriver.support.ui import Select from webdriver_manager.chrome import ChromeDriverManager from time import sleep from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager from selenium import webdriver from selenium.webdriver.chrome.service import Service as ChromeService from selenium import webdriver import os import shutil import datetime import xlwings as xw import time t_delta = datetime.timedelta(hours=9) JST = datetime.timezone(t_delta, 'JST') now = datetime.datetime.now(JST) d = now.strftime('%Y%m%d') date_string = "" # グローバル変数として定義 userhome = os.path.expanduser("~") dir = os.path.join(userhome, "Downloads") for root, dirs, files in os.walk(dir, topdown=False): for file in files: os.remove(os.path.join(root, file)) for folder in dirs: shutil.rmtree(os.path.join(root, folder)) browser = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install())) #browser = webdriver.Chrome(ChromeDriverManager().install()) browser.implicitly_wait(10) url = "http://ap-kkn3001-05-1/ProgMng/" browser.get(url) browser.implicitly_wait(20) overview = browser.find_element_by_id("SelDep")

ここに実現したいことを箇条書きで書いてください。

  • ▲▲機能を動作するようにする

前提

ここに質問の内容を詳しく書いてください。
(例)
TypeScriptで●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

例外が発生しました: AttributeError 'WebDriver' object has no attribute 'find_element_by_id' File "C:\Users\a40\Desktop\py_schedule\schedule.py", line 42, in <module> overview = browser.find_element_by_id("SelDep") AttributeError: 'WebDriver' object has no attribute 'find_element_by_id'

該当のソースコード

<select class="ddlist1" id="SelDep" name="Dep_NM" style="height:24px;width:110px;"><option value="">

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

meg_

2023/07/28 11:28

Chromeのバージョンを上げたらエラーが発生するようになった、ということでしょうか?(それ以外は何一つ変更なしで良いですね?)
yuya_i

2023/07/29 03:16

はい。その通りです。
yuya_i

2023/07/29 03:18

seleniumのバージョンの件 後日試してみます。 会社じゃないと試せないので月曜日以降になります。すみません。
guest

回答1

0

自己解決

seleniumのバージョンを4.2.0にする事で正しく動作するようになりました。
ありがとうございました。

投稿2023/07/30 23:27

yuya_i

総合スコア10

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.29%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問