用多个蜘蛛跑无头的硒

我有许多scrapy蜘蛛,它们使用scrapyd并行运行。 我正在做的就像下面的代码。

我的问题是,我是否真的需要为每个蜘蛛开始显示,并且驱动程序知道如何开始使用哪个显示器? 我应该只在全局启动一个显示器并在同一个显示器中启动多个webdriver实例吗?

def __init__(self):
    dispatcher.connect(self.spider_closed, signals.spider_closed)

def spider_closed(self, spider):
    if self.driver:
        self.driver.quit()

    if self.display:
        self.display.stop()

def parse(self, response):
    self.display = Display(visible=0, size=(1024, 768))
    self.display.start()
    self.driver = webdriver.Firefox()

    self.driver.get(response.url)
    page = Selector(text=self.driver.page_source)

    # doing all parsing etc

我建议使用分裂浏览器处理程序; 它是硒的包装材料。 它完全解决您的问题,因为显示处理由包完成。

通过安装更多的软件包,您也可以完全取消显示器的需要,这意味着分裂现在是无头的(浏览器窗口无法打开,而且速度更快)。 查看分裂文档,了解如何在无头中制作。 我个人建议使用PhantomJS驱动程序,即使您必须安装非Python PhantomJS程序。

链接地址: http://www.djcxy.com/p/32499.html

上一篇: Running Selenium headless with multiple spiders

下一篇: Retina iconLink with Google Drive API