2013-06-11 8 views
25

Soru doğru bir fikirdir, ancak bazı bağlamlar yardımcı olabilir.ghostdriver.log dosyasının yolu nasıl iptal edilir veya değiştirilir?

Selenium ve phantomjs'i downloader kullanırken scrapy kullanmaya çalışıyorum. Ancak sorun, konuşlandırmaya çalışırken izin verilmediğini söylemeye devam etmesidir. Bu yüzden ghostdriver.log yolunu değiştirmek veya sadece devre dışı bırakmak istiyorum. Phantomjs -h ve ghostdriver github sayfasına bakıp cevap bulamadım, arkadaşım google beni de hayal kırıklığına uğrattı.

$ 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 
+0

Hmm, downloader ara yazılımınızı görmeyi çok isterim, herkese açık mı? –

+0

Henüz kamuya açık değil, scrapy-renderjs ve scrapy-webdriver dayanıyor ama basitleştirilmiş haha. Onu projeden ayırmadım, bu yüzden halka açılmadım. –

cevap

29

PhantomJS sürücüsü aşağıdaki parametreyi ekleyin kullanırken:

selenyum:

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

İlgili kod olsa günlüğünü kapatmak için bir seçenek olması güzel olurdu, şu desteklenmez görünüyor /webdriver/phantomjs/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') 
+0

Pencerelerde, günlük dosyamı herhangi bir yere götürebilir miyim? – User

+0

@macdonjo Eğer bir "Windows dostu" yol sağladıysanız, tedarikçinin verdiğiniz yoldaki dosyalara erişim izni olduğu sürece istediğiniz yere koyabilirsiniz. Yine de Linux'ta yaşıyorum –

+0

Hiç kimse giriş yapmayı devre dışı bırakmak için '/ dev/null' log yolunu kullanmaya çalıştı mı? – hayavuk

15
#Reduce logging level 
    driver = webdriver.PhantomJS(service_args=["--webdriver-loglevel=SEVERE"]) 

    #Remove logging 
    import os 
    driver = webdriver.PhantomJS(service_log_path=os.path.devnull) 
İlgili konular