Python / Selenium / PhantomJS: không thể bắt đầu ph Phantomjs với ghostdo.


15

Tôi đang cố gắng để Selenium sử dụng ph Phantomjs trên máy Windows. Mã của tôi biên dịch mà không có bất kỳ lỗi nào:

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
import cookielib
import re
from splinter import Browser

driver = webdriver.PhantomJS('C:/Program Files (x86)/phantomjs-1.9.2-windows')

Nhưng mỗi lần chạy, tôi lại gặp lỗi

Traceback (most recent call last):
  File "E:/~PROJECT/disinfo/py/bs.py", line 8, in <module>
    driver = webdriver.PhantomJS('C:/Program Files (x86)/phantomjs-1.9.2-windows')
  File "C:\Python27\lib\site-packages\selenium\webdriver\phantomjs\webdriver.py", line 50, in __init__
    self.service.start()
  File "C:\Python27\lib\site-packages\selenium\webdriver\phantomjs\service.py", line 63, in start
    raise WebDriverException("Unable to start phantomjs with ghostdriver.", e)
selenium.common.exceptions.WebDriverException: Message: 'Unable to start phantomjs with ghostdriver.' ; Screenshot: available via screen 

Tôi đã nhận được lỗi này trong nhiều giờ. "Không thể bắt đầu ph Phantomjs với ghostdo". Các ví dụ đơn giản nhất cho thấy trực tuyến cài đặt selenium với PIP và sau đó ph Phantomjs với NodeJS NPM, đó là cách tôi đã làm. Vị trí của Selenium cũng nằm trong PYTHONPATH của tôi. Tôi thực sự không biết cái thứ này muốn gì ở tôi. Có ý kiến ​​gì không?


Các vấn đề tương tự về mã cơ bản đã từng hoạt động, nghĩ rằng tôi đã phá vỡ cấu trúc python của mình lúc đầu.
Shane

1
Welp, có vẻ như dev của ph Phantomjs đã thừa nhận rằng các ràng buộc trăn đứng đằng sau. github.com/detro/ghostdo/issues/236 Rất nhiều cho việc sử dụng ph Phantomjs. Ước gì tôi đã biết rằng trước khi tôi dành vài giờ đồng hồ để cố gắng đánh bại ph Phantomjs với cuộc sống.
Amalgovinus

1
Cảm xúc tương tự ở đây. Tại sao nó rất quan trọng để học mã và không phải thư viện trừ khi chúng được duy trì bởi một cộng đồng lớn. Bạn không bao giờ có thể mong đợi một anh chàng duy trì dự án của mình đặc biệt là nếu không kiếm được tiền từ công việc khó khăn.
Shane

Câu trả lời:


19

Tôi gặp vấn đề tương tự. Tôi cần cung cấp đường dẫn đầy đủ đến exe, như được mô tả trong tài liệu :

from selenium import webdriver
driver = webdriver.PhantomJS(executable_path='C:\phantomjs-1.9.2\phantomjs.exe')

Điều này thực sự đã cho phép nó quay số, hoan hô. Bây giờ vấn đề duy nhất là, mọi yếu tố tôi cố gắng in, nó chỉ cung cấp cho tôi một đối tượng "selenium.webdo.ph Phantomjs.webdo.WebDriver tại 0x0000000002F54668" hoặc ID unicode. Tôi khuyên bạn nên dùng Grab của lorien. bitbucket.org/lorien/grab/src/ khăn
Amalgovinus

câu chuyện có thật!! ước gì tôi có thể upvote 5 lần.
Hellow

Không làm việc cho tôi ... Tôi đã phải chỉnh sửa service.txt theo câu trả lời của DT_Lvhyy.
Deep-B

Có vẻ như đối với các hệ thống Ubuntu và Linux, ~ nên là đường dẫn thực tế từ thư mục gốc đến thư mục
Delos Chang

2

Bạn cần sửa đổi ...\Python27\Lib\site-packages\selenium-2.39.0-py2.7.egg\selenium\webdriver\phantomjs\service.py

Đây trang mã google sẽ giúp đỡ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.