Селен + питон + гуглдрайвер - PullRequest
0 голосов
/ 27 февраля 2019

Я использую python с селеном для просмотра веб-страниц вместе с драйвером chrome в режиме без головы (без пользовательского интерфейса).Дело в том, что я нажимаю на кнопку href, и это действие не загружает нужный мне pdf-файл.Но дело в том, что, возможно, он загружается, но я не знаю, где.Он ничего не делает, нет ошибок, ничего.

То же действие отлично работает с режимом графического интерфейса.

Любые предложения?.

Заранее спасибо!.

1 Ответ

0 голосов
/ 27 февраля 2019

Вы можете установить каталог по умолчанию для загрузки файлов при инициализации chromedriver:

import os
from selenium import webdriver
# Set the target subfolder based on the current working directory
dl_folder = '/downloads'
dl_location = os.path.join(os.getcwd(), dl_folder)

# Add the headless argument
chrome_options.add_argument('headless')

# Prepare a dict with additional preferences. This is where the magic happens:
prefs = {"download.default_directory": dl_location}
chrome_options.add_experimental_option("prefs", prefs)

# launch the driver
driver = webdriver.Chrome(executable_path= '/path/to/executable', chrome_options= chrome_options)

После этого вы нажимаете что-то, что инициализирует загрузку

exportbtn = driver.find_element_by_id('exporter-csv')
exportbtn.click()

И затем вы получаете последнююдобавлен файл из папки.Например, если это CSV, загрузите его в фрейм данных:

import glob
import pandas as pd
list_of_files = glob.glob(dl_location+ '/*')
latest_file = max(list_of_files, key=os.path.getctime)
df = pd.read_csv(latest_file)

Я не знаю, как напрямую получить имя файла или файл.Если есть что-нибудь, мне любопытно услышать об этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...