Как отключить или изменить путь к ghostdriver.log?

Вопрос прямолинейный, но некоторый контекст может помочь.

Я пытаюсь развернуть scrapy, используя селен и фантомы в качестве загрузчика. Но проблема в том, что он продолжает говорить об отказе в разрешении при попытке развертывания. Поэтому я хочу изменить путь к ghostdriver.log или просто отключить его. Глядя на страницу phantomjs -h и ghostdriver на github, я не смог найти ответ, мой друг Google тоже подвел меня.

$ scrapy deploy
Building egg of crawler-1370960743
'build/scripts-2.7' does not exist -- can't clean it
zip_safe flag not set; analyzing archive contents...
tests.fake_responses.__init__: module references __file__
Deploying crawler-1370960743 to http://localhost:6800/addversion.json
Server response (200):
Traceback (most recent call last):
  File "/usr/lib/pymodules/python2.7/scrapyd/webservice.py", line 18, in render
    return JsonResource.render(self, txrequest)
  File "/usr/lib/pymodules/python2.7/scrapy/utils/txweb.py", line 10, in render
    r = resource.Resource.render(self, txrequest)
  File "/usr/lib/python2.7/dist-packages/twisted/web/resource.py", line 216, in render
    return m(request)
  File "/usr/lib/pymodules/python2.7/scrapyd/webservice.py", line 66, in render_POST
    spiders = get_spider_list(project)
  File "/usr/lib/pymodules/python2.7/scrapyd/utils.py", line 65, in get_spider_list
    raise RuntimeError(msg.splitlines()[-1])
RuntimeError: IOError: [Errno 13] Permission denied: 'ghostdriver.log

person Sam Stoelinga    schedule 11.06.2013    source источник
comment
Хм, я хотел бы увидеть промежуточное программное обеспечение вашего загрузчика, оно общедоступно?   -  person Capi Etheriel    schedule 13.06.2013
comment
Пока не буду публиковать его сегодня вечером, он основан на scrapy-renderjs и scrapy-webdriver, но упрощен, ха-ха. Я еще не отделил его от проекта, поэтому не публиковал.   -  person Sam Stoelinga    schedule 17.06.2013


Ответы (1)


При использовании драйвера PhantomJS добавьте следующий параметр:

driver = webdriver.PhantomJS(service_log_path='/var/log/phantomjs/ghostdriver.log')

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

селен/вебдрайвер/фантомы/service.py

class Service(object):
    """
    Object that manages the starting and stopping of PhantomJS / Ghostdriver
    """

    def __init__(self, executable_path, port=0, service_args=None, log_path=None):
        """
        Creates a new instance of the Service

        :Args:
         - executable_path : Path to PhantomJS binary
         - port : Port the service is running on
         - service_args : A List of other command line options to pass to PhantomJS
         - log_path: Path for PhantomJS service to log to
        """

        self.port = port
        self.path = executable_path
        self.service_args= service_args
        if self.port == 0:
            self.port = utils.free_port()
        if self.service_args is None:
            self.service_args = []
        self.service_args.insert(0, self.path)
        self.service_args.append("--webdriver=%d" % self.port)
        if not log_path:
            log_path = "ghostdriver.log"
        self._log = open(log_path, 'w')
person Sam Stoelinga    schedule 12.06.2013
comment
В Windows, могу ли я просто сделать свой файл журнала в любом месте? - person User; 12.01.2014
comment
@macdonjo Я думаю, что если вы укажете удобный для Windows путь, вы можете поместить его куда угодно, если у процесса есть разрешение на доступ к файлам по указанному вами пути. хотя я на линуксе - person Sam Stoelinga; 12.01.2014
comment
Кто-нибудь пробовал использовать «/dev/null» в качестве пути к журналу, чтобы отключить ведение журнала? - person ; 13.06.2014
comment
Ок, разобрался. Чтобы отключить ведение журнала, используйте os.path.devnull в качестве пути. Должен работать в любой системе с нулевым устройством. - person ; 13.06.2014
comment
У меня есть связанный с этим вопрос: How can we found these selenium phantomjs usages? я думаю, что мне очень сложно найти эти варианты использования в seleniumhq.org/docs< /а> - person Simin Jie; 13.05.2017
comment
@SiminJie Добро пожаловать в StackOverflow! Если у вас есть отдельный, но связанный вопрос, просто задайте новый вопрос и не стесняйтесь ссылаться на другой вопрос. Спасибо! - person jtpereyda; 12.12.2017