使用python在Linux上运行phantomjs[英] Running phantomjs on linux using python

问题描述

我关注了 这个链接,现在当我输入phan 然后 tab (\t) 它会自动完成到 phantomJS.

如果我运行 phantomJS -v 或 phantomJS --version 我会得到:

bash: /usr/local/bin/phantomjs: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

另外,如果我尝试运行:

>>> from selenium import webdriver
>>> driver = webdriver.PhantomJS()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/phantomjs/webdriver.py", line 50, in __init__
    service_args=service_args, log_path=service_log_path)
  File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/phantomjs/service.py", line 50, in __init__
    service.Service.__init__(self, executable_path, port=port, log_file=open(log_path, 'w'))
IOError: [Errno 13] Permission denied: 'ghostdriver.log'
>>> 

如果我尝试遵循 这个我明白了:

>>> import os
>>> driver = webdriver.PhantomJS(service_log_path=os.path.devnull)
Exception AttributeError: "'Service' object has no attribute 'log_file'" in <bound method Service.__del__ of <selenium.webdriver.phantomjs.service.Service object at 0x7f182ec13690>> ignored
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/phantomjs/webdriver.py", line 51, in __init__
    self.service.start()
  File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/common/service.py", line 69, in start
    os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Message: 'phantomjs' executable needs to be in PATH. 

>>> 

我的 selenium/phatnomjs 是否安装了正确的权限?

我创建了一个目录 /home/ec2-user/temp 并设置:

chmod 777 /home/ec2-user/temp

还是

>>> from selenium import webdriver
>>> driver = webdriver.PhantomJS(service_log_path='/home/ec2-user/temp/ghostdriver.log')

产量:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/phantomjs/webdriver.py", line 51, in __init__
    self.service.start()
  File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/common/service.py", line 69, in start
    os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Message: 'phantomjs' executable needs to be in PATH. 

如果我输入 which phantomjs 我会得到:

$ which phantomjs
/usr/local/bin/phantomjs

推荐答案

听起来很像 64 位与 32 位的问题.

要查看你的 ubuntu 的版本,你可以运行

$ uname -i
x86_64

然后确保下载正确版本的phantom

还要确保您的库与您的操作系统版本相对应.

本文地址:https://www.itbaoku.cn/post/1740198.html