Как правильно прописать путь

tmpnik

Новичок
Пользователь
Июл 2, 2020
4
1
3
win10 Python 3
Установил пакет PhantomJS в каталог G:\TMP\phantomjs-2.1.1-windows\
(гугл хром, мазила не подходят, в компе мало памяти. атут надо устанавливать сами браузеры, потом к ним ещё хедлесс )
Не знаю надо ли как-то этот пакет прописывать pip или нет, но

Скопировал простой пример с официального сайта

Python:
from selenium import webdriver
import time
driver = webdriver.PhantomJS()
driver.get('[URL]https://python.org[/URL]')
html = driver.page_source
print(html)

но webdriver.PhantomJS() не находит путь, тогда

как написано в руководстве указал другой путь driver = webdriver.PhantomJS("G://TMP/phantomjs-2.1.1-windows/bin/phantomjs.exe")
опять скрипт не отрабатывает, подвешивает систему далее, другой вариант с другим слэшем… опять не то driver = webdriver.PhantomJS("G:\TMP\phantomjs-2.1.1-windows\bin\phantomjs.exe")
далее то же самое без exe, не получается, также не получается если

Python:
phantomjs_driver = 'G://TMP\phantomjs-2.1.1-windows\bin\phantomjs.exe'
driver = webdriver.PhantomJS(executable_path=phantomjs_driver)

Вроде исчерпал все варианты, Как надо прописать этот путь?
 
  • Мне нравится
Реакции: Student

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Правильно так:
Python:
driver = webdriver.PhantomJS("G://TMP//phantomjs-2.1.1-windows//bin//phantomjs.exe")
Можете попробовать сначала вызвать phantomjs с помощью os.system("G://TMP//phantomjs-2.1.1-windows//bin//phantomjs.exe") - если вызовет, значит путь правильный.
 
  • Мне нравится
Реакции: tmpnik и Student

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Но почему то загружается браузер хром, каждый раз, и приходится закрывать окно браузера
Нужно указать драйверу в опциях фоновый (headless) режим:
Python:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys


options = webdriver.ChromeOptions()
options.add_argument('--headless')
browser = webdriver.Chrome(executable_path="G:\TMP\chromedriver_win32\chromedriver.exe",
                           options=options)
browser.get('https://automatetheboringstuff.com')
html = browser.page_source
print(html)
 
  • Мне нравится
Реакции: tmpnik и Student

Student

throw exception
Команда форума
Администратор
Апр 2, 2020
195
103
43
Москва
PhantomJS уже не поддерживается и не обновляется. Нужно использовать Chrome с параметрами headerless
 

tmpnik

Новичок
Пользователь
Июл 2, 2020
4
1
3
PhantomJS уже не поддерживается и не обновляется. Нужно использовать Chrome с параметрами headerless
Т.е. мне надо установить хром, потом под него скачать драйвер для силениума… А если мне отработанный код надо перенести потом на сервер дебиана, на котором не установлены ни мазила, ни хром и устанавливать их там не желательно, тогда какой вариант?
И ещё один момент, драйвер устанавливается под конкретную версию хрома(мазилы), но система автоматом обновляет эти версии хрома, будет ли обновляться драйвер или надо всё время самому следить за обновлением драйвера7
вот ещё один вопрос, пытаюсь взять страницу с помощью этого кода

Python:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
#browser = webdriver.Chrome()
browser = webdriver.Chrome(executable_path="G:\TMP\chromedriver_win32\chromedriver.exe")
browser.get('https://automatetheboringstuff.com')
html = browser.page_source
print(html)

Но почему то загружается браузер хром, каждый раз, и приходится закрывать окно браузера
 
Последнее редактирование модератором:

tmpnik

Новичок
Пользователь
Июл 2, 2020
4
1
3
Правильно так:
Python:
driver = webdriver.PhantomJS("G://TMP//phantomjs-2.1.1-windows//bin//phantomjs.exe")
Можете попробовать сначала вызвать phantomjs с помощью os.system("G://TMP//phantomjs-2.1.1-windows//bin//phantomjs.exe") - если вызовет, значит путь правильный.

Скорей всего путь правильный, я поместил этот драйвер в папку Python\Python38-32\Scripts (driver = webdriver.PhantomJS()) и почему то при выполнении скрипта появилось окно дать доступ на выполнение, и скрипт выполнился один раз, а потом опять же такая ситуация, как и с этим правильным путём, висит, чёрный экран и никакого результата, скорей всего что-то рубит в самой винде...
 

Student

throw exception
Команда форума
Администратор
Апр 2, 2020
195
103
43
Москва
чёрный экран и никакого результата, скорей всего что-то рубит в самой винде...

Используйте Chrome с параметром --headerless
Вот https://itfy.org/threads/zapusk-webdriver-chrome-v-fonovom-rezhime-bezgolovy-headless.756/

Оставьте уже этот PhantomJS пусть покоится c миром.
https://github.com/biocore/emperor/issues/580
 
  • Мне нравится
Реакции: tmpnik

tmpnik

Новичок
Пользователь
Июл 2, 2020
4
1
3
Спасибо
 

Форум IT Специалистов