1

我有一个名为“Kenbot”的 Ken**** 股票购买机器人(Ken**** 是一家股票经纪公司),它已经运行了一年,我大部分时间都在努力解决这些错误。直到最近,我有一个新的回溯,我被难住了。它仅在某些日子偶尔发生,而在其他日子不会发生。

Kenbot 每天早上开市前通过我的 Synology NAS 在 docker 映像 (selenium/standalone-chrome:latest) 上运行,它将订购少量股票。它通过 Selenium 工作。

现在我没有解决方案,除了有一个 @retry 装饰器,如果遇到 WebDriverException 它将重新尝试下订单。

我该如何解决这个问题?

Traceback (most recent call last):
  File "/volume1/homes/admin/Drive/stock/order/downloadContractNote.py", line 23, in main
    with docker_selenium() as _, Kenbot(headless=True) as bot:
  File "/volume1/homes/admin/Drive/stock/logs/logger.py", line 58, in wrapper
    return func(*args, **kwargs)
  File "/volume1/homes/admin/Drive/stock/order/kenbot.py", line 100, in __init__
    self.bot.login()
  File "/volume1/homes/admin/Drive/stock/order/kenbot.py", line 70, in f_retry
    return f(*args, **kwargs)
  File "/volume1/homes/admin/Drive/stock/order/kenbot.py", line 176, in login
    self.driver_.get("http://www.stockbroking.com.my")
  File "/volume1/homes/admin/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 333, in get
    self.execute(Command.GET, {'url': url})
  File "/volume1/homes/admin/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/volume1/homes/admin/venv/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: net::ERR_NAME_NOT_RESOLVED
  (Session info: headless chrome=94.0.4606.81)
4

1 回答 1

0

假设您使用的是 docker-compose,您可以添加以下 IP www.stockbroking.com.my

...
services:
  <app>:    
    extra_hosts:
    - "www.stockbroking.com.my:<add IP address here>"
...

或者,docker run --add-host www.stockbroking.com.my:<add IP address here> ...

或者使用 Python docker SDK,如注释中所示:

container = client.containers.run('selenium/standalone-chrome', user = 'root', detach=True, auto_remove=True, environment = ["TZ=Asia/Kuala_Lumpur"], ports={'4444/tcp' :('127.0.0.1',4444)}, extra_hosts={'www.stockbroking.com.my': '999.99.99.999'} , 特权 = True)

于 2021-10-27T03:11:37.080 回答