質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.35%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Chrome

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

Python

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

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

Q&A

解決済

1回答

2116閲覧

chromedriverを用いて保存先をループごとに変更させたい

GK.1225

総合スコア22

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Chrome

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

Python

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

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

0グッド

0クリップ

投稿2020/10/09 10:50

#前提・実現したいこと
Chromedriverを用いて保存先をループごとに変更させたいです.
webスクレイピングの勉強をしています。現時点でページにアクセスし、ファイルを保存、保存先の変更まで出来るようになったのですが、ループ分を用いて保存先をファイルごとに自動で変更させようとするとGoogleのエラーで「失敗-ダウンロードエラー」と出てしまいます。
Googleの設定を確認すると変更は出来ているようなのですが、何故かダウンロードがうまくいきません。

該当のコード

from selenium import webdriver import glob import os import pprint import time def init_selenium(x): ###Chromeへオプションを設定 options = webdriver.ChromeOptions() options.add_experimental_option('prefs', { 'download.default_directory': x, 'download.prompt_for_download': False, 'download.directory_upgrade': True, 'safebrowsing.enabled': True }) driver = webdriver.Chrome(chrome_options=options) return driver files = glob.glob('C:/Users/koroz/Desktop/fits_make_text/*') filters = glob.glob('C:/Users/koroz/Desktop/fits_make_text/{0}/*'.format(files[2][38:])) texts = glob.glob('C:/Users/koroz/Desktop/fits_make_text/{0}/{1}/*'.format(files[2][38:],filters[1][76:])) for i in range(len(files)): for j in range (len(filters)): for k in range(texts): download_directory= r"C:/Users/koroz/Desktop/fits_files/{0}/{1}/{2}".format(files[i][38:],filters[j][76:],texts[k][116:-6]) driver = init_selenium(download_directory) driver.get("URL") element = driver.find_element_by_name("list") element.send_keys('C:/Users/koroz/Desktop/fits_make_text/{0}/{1}/{2}_{3}_{4}.txt'.format(files[i][38:],filters[j][76:],format(files[i][38:]),texts[k][116:-6],filters[j][76:])) time.sleep(3) button = driver.find_element_by_id("bulk-submit") button.click() time.sleep(10) driver.close();

## 発生するエラー
実行環境ではエラーは出ませんでした
Googleでのエラーはダウンロード時に「失敗-ダウンロードエラー」と表示され、ダウンロードできませんでした

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kuma_kuma_

2020/10/09 11:00

質問者様download_directoryは存在しているのですか?
GK.1225

2020/10/09 11:10

ご質問ありがとうございます。他のパスに変えてみてもダウンロードは出来ませんでしたが, download_directoryの'/'の部分を'\'に変更してみたところ何故か希望した保存先に保存が出来るようになりました。pathの書き方を間違えていたのかなと思います。
kuma_kuma_

2020/10/09 11:14

ローカルのパスだから'\'だよ。 あと「"」で囲うの忘れないでね。パス内にスペースあるとエラーになるよ。
GK.1225

2020/10/09 11:18

なるほど、勉強不足でした。保存先の変更について長い時間調べていてわからなかったのですが、理解することが出来、すっきりしました。この質問については解決することが出来ましたので閉めようと思います。 kuma_kuma_様、ありがとうございました。
guest

回答1

0

自己解決

pathの書き方を間違えていました。
ローカルパスは'/'ではなく''にする!

投稿2020/10/09 11:19

GK.1225

総合スコア22

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問