Я хочу использовать Phantom JS для синтаксического анализа веб-сайта Dynami c - PullRequest
0 голосов
/ 17 июня 2020

Я запускаю следующий код:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.select import Select
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.PhantomJS(r"C:\Users\a1nag\OneDrive\Desktop\phantomjs-2.1.1-windows.zip\phantomjs- 
2.1.1-windows\bin")
driver.get("https://www.paddypower.com/mixed-martial-arts")

# waiting for the page to load - TODO: change
wait = WebDriverWait(driver, 10)
wait.until(EC.visibility_of_element_located((By.ID, "content")))

data = driver.page_source
driver.close()

soup = BeautifulSoup(data, "html.parser")

Я получаю следующую ошибку:

os.path.basename(self.path), self.start_error_message)
WebDriverException: 'phantomjs.exe' executable needs to be in PATH.

Я использовал python раньше, но только для анализа и визуализации данных, поэтому терминология, касающаяся пути, выходит у меня из головы. Я думал, что включил путь, где фантом js находится в правильном месте. Любая помощь будет принята с благодарностью.

Обновление:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.select import Select
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.PhantomJS(r"C:\Users\a1nag\OneDrive\Desktop\phantomjs- 
2.1.1-windows.zip\phantomjs-2.1.1-windows\bin\phantomjs.exe")
driver.get("https://www.paddypower.com/mixed-martial-arts")

# waiting for the page to load - TODO: change
wait = WebDriverWait(driver, 10)
wait.until(EC.visibility_of_element_located((By.ID, "content")))

data = driver.page_source
driver.close()

soup = BeautifulSoup(data, "html.parser")

Получите точно такое же сообщение об ошибке: «os.path.basename (self.path), self.start_error_message)

WebDriverException: исполняемый файл 'phantom js .exe' должен находиться в PATH. "

И, спасибо за помощь!

Изменить: я поместил файл .exe в папка, которая находится в пути. У меня другая ошибка, поэтому я решил, что она сработала. Еще раз спасибо

1 Ответ

0 голосов
/ 18 июня 2020

Вы должны использовать полный путь с phantomjs.exe в конце

driver = webdriver.PhantomJS(r"C:\Users\a1nag\OneDrive\Desktop\phantomjs-2.1.1-windows.zip\phantomjs-2.1.1-windows\bin\phantomjs.exe")

В конце концов вам нужно поместить phantomjs.exe в папку, которую вы можете найти в системной переменной PATH, а затем вы можете запускать без аргументов.

driver = webdriver.PhantomJS()

Или вам нужно добавить полный путь (без phantomjs.exe) к системной переменной PATH, а затем вы также можете запустить его без аргументов.

driver = webdriver.PhantomJS()
...