您好,欢迎来到赴品旅游。
搜索
您的当前位置:首页解决在docker 中部署 selenium 服务,服务需要启动时间的问题

解决在docker 中部署 selenium 服务,服务需要启动时间的问题

来源:赴品旅游

问题描述

当我们在 docker 中启动了 selenium 服务的时候,有时候当我们的爬虫服务已经启动,但是 selenium 服务尚在准备阶段的时候,有可能会报出服务拒绝的异常。

解决思路

一种解决的方案是我们在调用服务之前强制睡眠一段时间,等待服务完全准备好再进行连接。这种方案的不优雅之处在于当我们有多个服务需要调度的时候,睡眠的时间间隔是很难确定和把控的。

另外的思路就是去请求 selenium 暴露出的提供服务状态的接口,在得到确定的响应回复之后即可知道该服务已经准备好了。

简单实现代码

import requests


def _check_selenium_status():
    """
    检查 selenium 服务端的状态
    :return:
    """
    while True:
        i = 0
        try:
            # 检查本地的 selenium 服务是否已经启动
            resp = requests.get("http://127.0.0.1:4444/wd/hub/status", timeout=0.5)
        except:
            i += 1
            if i > 10:
                raise
        else:
            print(resp.text)
            break


_check_selenium_status()

运行结果:

后记

疫情期间,在家办公。据说很多企业因此已经生存不下去了,内心惶惶自是难免,说不焦虑一定是假的。

同情、悲愤他人的遭遇,同时更感慨做一个普通人,能有平安顺遂的一生已经很不容易了。

我们应该是因为不如意的遭遇变得更加坚强,而不是就此消沉。

更新时间: 2020-02-03

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- fupindai.com 版权所有 赣ICP备2024042792号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务