2013-05-02 11 views
7

すべてがタイトルにあります!pyromでchromedriver seleniumのダウンロードディレクトリを定義します

pythonで使用されるselenium-chromedriverのダウンロードディレクトリを定義する方法はありますか?

多くの研究にもかかわらず、私は決定的なものを見つけませんでした。 初心者として、Chromedriverの "desired_capabilities"または "options"について多くのことを見てきましたが、何も問題を解決しませんでした。 (と私はまだそれがあればわからない!)

私の問題をもう少し説明する: 私は多くのURLをスキャンする(200 000)と各URLのファイルをダウンロードする。 私は、URL、私はそれに廃棄された情報、および私は各Webページのために今ダウンロードしたファイルの名前でテーブルを作成する必要があります。 治療する必要があるボリュームでは、治療のスピードを上げるためにクロムドライブの複数のインスタンスを開くスレッドを作成しました。 ダウンロードしたすべてのファイルが同じデフォルトのディレクトリに到着し、ファイルをURLにリンクすることができなくなってしまうという問題があります。 したがって、各スレッドのダウンロードディレクトリを作成して、 1。

タイトルの中に私の質問に対する回答がある場合や、ダウンロードしたファイルを特定してそれを現在のURLとリンクさせるための回避策がある場合は、感謝します。

+0

....以下のコードを試してみてください。ダウンロードしたファイルで何かしていますか?これを読んでください:http://ardesco.lazerycode.com/index.php/2012/07/how-to-download-files-with-selenium-and-why-you-shouldnt/そしてこのhttp: /www.blog.pythonlibrary.org/2012/06/07/python-101-how-to-download-a-file/ – Ardesco

+0

hi ご返信いただきありがとうございます。 私は実際にテストを実行するのに実際にはSeleniumを使用しませんが、実際には後処理のためのデータCSVファイルの大量ダウンロードを自動化するために使用します。 私はurllib2の方法を探そうとしましたが、サイトで認証するのが難しい問題でした... (おそらく私は日曜日のDIY初心者で、セレニウムは私が見つけたときに黄金の卵のガチョウでした! ...) – matlabat

答えて

1

chromedriver1については、新しいプロファイルを作成し、そのプロファイル内にdownload.default_directoryを希望の場所に設定し、chrome.profileを使用してこのプロファイルをchromeに設定します。 selenium-chromedriverパッケージには、特別な処理が必要なため、新しいプロファイルを作成するためのいくつかの方法が必要です(少なくともルビーとは異なります)。

Chromedriver2はプロファイルの設定をサポートしていません。あなたはそれで嗜好を設定することができます。あなたがダウンロードディレクトリを設定したい場合、これはあなたがそれを行う方法です。

prefs: { download: { default_directory: "/tmp" } } 

ルビーセレンwebdriverをは、まだこの機能をサポートしていない、Pythonの変種は、しかし行う可能性があります。

1

私は最近同じ問題に直面しています。インターネットで見つかった多くのソリューションを試しましたが、誰も助けてくれませんでした。だから、最終的に私はこれに来た:空のユーザー・データ・ディレクトリ(中に/ tmpフォルダ)と

  • 起動クロムクロムは
  • は、新しく作成したユーザーにデフォルト/設定を変更クロム
  • を終了し、それを初期化できるようにします

    "ダウンロード":{ "default_directory": "/tmp/tmpX7EADC.downloads"、 "directory_upgrade":真

    } -data-DIRは、ルートオブジェクト(一例)にこれらのフィールドを追加します
  • 同じユーザー・データ・ディレクトリ

と再び

  • 打ち上げChromeは今それだけで正常に動作します。

    もう一つのヒント:ダウンロードしようとしているファイルのファイル名がわからない場合は、ダウンロードディレクトリのスナップショット(ファイルのリスト)を作成し、ファイルをダウンロードし、comparin snapshotと現在のリストdownloadsディレクトリ内のファイル。

  • +0

    問題のPython擬似コードが必要な場合は、教えてください。 –

    0

    一般的に私はあなたがそれは通常は静的なフォルダにすべてをダウンロードひどく考え抜かテストだ、クロムを使用して物事をダウンロードしないことをお勧め

    System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver"); 
    String downloadFilepath = "/path/to/download"; 
    HashMap<String, Object> chromePrefs = new HashMap<String, Object>(); 
    chromePrefs.put("profile.default_content_settings.popups", 0); 
    chromePrefs.put("download.default_directory", downloadFilepath); 
    ChromeOptions options = new ChromeOptions(); 
    HashMap<String, Object> chromeOptionsMap = new HashMap<String, Object>(); 
    options.setExperimentalOptions("prefs", chromePrefs); 
    options.addArguments("--test-type"); 
    DesiredCapabilities cap = DesiredCapabilities.chrome(); 
    cap.setCapability(ChromeOptions.CAPABILITY, chromeOptionsMap); 
    cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true); 
    cap.setCapability(ChromeOptions.CAPABILITY, options); 
    WebDriver driver = new ChromeDriver(cap); 
    
    +1

    'C#'は 'Python'の質問に答えますか? – DeepSpace

    関連する問題