Определить каталог загрузки для седана хромидра с помощью python

Все в названии!

Есть ли способ определить каталог загрузки для selenium-chromedriver, используемый с python?

Несмотря на многие исследования, я не нашел ничего убедительного … Как новичок, я многое видел о «желаемых возможностях» или «вариантах» для Chromedriver, но ничто не разрешило мою проблему … (и я все еще не знаю, будет ли это!)

Объяснить немного больше моей проблемы: у меня много url для сканирования (200 000) и для каждого URL-файла для загрузки. Мне нужно создать таблицу с url, информацию, которую я сломал на ней, И имя файла, который я только что загрузил для каждой веб-страницы. С объемом, который я должен обработать, я создал потоки, которые открывают несколько экземпляров хромирования для ускорения обработки. Проблема в том, что каждый загруженный файл поступает в один и тот же каталог по умолчанию, и я больше не могу связать файл с URL-адресом … Итак, идея состоит в том, чтобы создать каталог загрузки для каждого потока для управления ими по одному.

Если у кого-то есть ответ на мой вопрос в заголовке ИЛИ обходной путь, чтобы определить загруженный файл и связать его с текущим URL-адресом, я буду благодарен!

  • Selenium ChromeDriver - HTTP 407 на driver.quit ()
  • настройка предпочтений Chrome w / Selenium Webdriver в Python
  • Установите chrome.prefs с привязкой python для селена в chromedriver
  • Сообщение об ошибке: исполняемый файл «chromedriver» должен быть доступен в пути «
  • Неподдерживаемый флаг командной строки: -ignore-certificate-errors
  • Может ли сайт обнаруживаться, когда вы используете селен с хромированным ребером?
  • Есть ли способ связать двоичный файл (например, хромированный) с одним файловым приложением / exe, скомпилированным с помощью Pyinstaller?
  • WebDriverException: Сообщение: «Не удается подключиться к ChromeDriver». Ошибка в utils.is_connectable (self.port):
  • 3 Solutions collect form web for “Определить каталог загрузки для седана хромидра с помощью python”

    Для chromedriver1 создайте новый профиль и внутри этого профиля установите download.default_directory в нужное место и установите этот профиль для chrome с помощью chrome.profile . Пакет selenium-chromedriver должен иметь некоторые методы для создания новых профилей (по крайней мере, с рубином), так как им нужна специальная обработка.

    Chromedriver2 не поддерживает настройку профиля. Вы можете установить с ним предпочтения. Если вы хотите установить каталог загрузки, вот как вы это делаете:

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

    Ruby selenium-webdriver еще не поддерживает эту функцию, однако вариант python может это сделать.

    Я недавно столкнулся с той же проблемой. Пробовал много решений, найденных в Интернете, никто не помогал. Поэтому, наконец, я пришел к следующему:

    • Запустите chrome с пустым каталогом user-data-dir (в папке / tmp), чтобы позволить chrome инициализировать его
    • Выход из хрома
    • Измените значение по умолчанию / Предпочтения во вновь созданном каталоге user-data-dir, добавьте эти поля к корневому объекту (просто пример):

      "скачать": {"default_directory": "/tmp/tmpX7EADC.downloads", "directory_upgrade": true}

    • Запустить хром снова с помощью того же файла данных пользователя

    Теперь все работает отлично.

    Еще один совет: если вы не знаете имя файла файла, который будет загружен, создайте моментальный снимок (список файлов) каталога загрузки, затем загрузите файл и найдите его имя путем сравнения моментального снимка и текущего списка файлов в загрузках каталог.

    Пожалуйста, попробуйте приведенный ниже код ….

     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); 
    Python - лучший язык программирования в мире.