вход на сайт и загрузка файла - PullRequest
0 голосов
/ 21 октября 2018

Я бы хотел зайти на сайт и скачать файл.Я использую селен и хромедривер.Хотелось бы узнать, есть ли лучший способ.В настоящее время он открывает окно браузера Chrome и отправляет информацию.Я не хочу, чтобы открылось окно браузера и отправлялись данные.Просто хочу отправить его и вернуть данные в переменную.

from selenium import webdriver
driver = webdriver.Chrome()

def site_login(URL,ID_username,ID_password,ID_submit,name,pas):
  driver.get(URL)
  driver.find_element_by_id(ID_username).send_keys(name)
  driver.find_element_by_id(ID_password).send_keys(pas)
  driver.find_element_by_id(ID_submit).click()


URL = "www.mywebsite.com/login"
ID_username = "name"
ID_password = "password"
ID_submit = "submit"

name = "myemail@mail.com"
pas = "mypassword"

resp=site_login(URL,ID_username,ID_password,ID_submit,name,pas)

Ответы [ 3 ]

0 голосов
/ 21 октября 2018

Вы можете запустить Chrome в режиме без головы.В этом случае пользовательский интерфейс Chrome не будет отображаться и по-прежнему будет выполнять задачу, которую вы выполняли.Некоторые статьи, которые я нашел на этом https://intoli.com/blog/running-selenium-with-headless-chrome/. Надеюсь, это поможет.

0 голосов
/ 21 октября 2018

Первый вариант: если вы можете сменить драйвер, вы можете использовать phantom-js в качестве драйвера.Это был безголовый браузер, и вы можете использовать его с селеном.

Второй вариант: если сайт не динамический (его легко назвать SPA) или вы можете отслеживать пакеты (что можно сделать с помощью инструментов Chrome Dev), вы можете напрямую использовать запрос с помощью Beautifulsoup, если вам нужно получить некоторые данные на странице.

0 голосов
/ 21 октября 2018

Просто добавьте эти две строки

chrome_options = Options()  
chrome_options.add_argument("--headless")

Это должно заставить хром работать в фоновом режиме.

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