Я работаю над селеновой решеткой для очистки сайта. Если я использую только один узел хрома, это означает, что селеновая сетка работает, если я масштабирую более одного узла хрома и селеновой сетки, и повторная очистка снова перестает работать. Он просто мигает через некоторое время с большим сообщением об ошибке.
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
import scrapy
from selenium import webdriver
class ProductSpider(scrapy.Spider):
name = "product_spider"
start_urls = ['https://google.com']
def __init__(self):
options = webdriver.ChromeOptions()
options.add_argument('--headless')
self.driver = webdriver.Remote(command_executor='http://localhost:5000/wd/hub',
desired_capabilities=DesiredCapabilities.CHROME)
def parse(self, response):
data = self.driver.get(response.url)
print(data,'/////////////')
Затем я открыл оболочку python и набрал индивидуальный код
Python 3.6.5 (default, Apr 1 2018, 05:46:30)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from selenium import webdriver
>>> from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
>>> options = webdriver.ChromeOptions()
>>> options.add_argument('--headless')
>>> driver = webdriver.Remote(command_executor='http://localhost:5000/wd/hub',
... desired_capabilities=DesiredCapabilities.CHROME)
Как вы видите, он остановился в webdriver. Удаленный .cursor просто мигает долгое время, после чего появляется большое сообщение об ошибке. Я думаю, что проблема в webdriver.Remote (command_executor = 'http://localhost:5000/wd/hub',
... требуемая строка = DesiredCapabilities.CHROME).
Может кто-нибудь дать решение этой проблемы
Обратите внимание, что это работает, если сетка селена имеет один узел (хром), если я масштабирую более одного узла (хром).
Это сообщение об ошибке после долгого времени:
Traceback (последний вызов был последним): файл "", строка 1, в
файл
"/Home/vicky/.local/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py",
строка 156, в init
Файл self.start_session (functions, browser_profile) "/home/vicky/.local/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py",
строка 251, в start_session
response = self.execute (Command.NEW_SESSION, параметры) Файл "/home/vicky/.local/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py",
строка 320, в исполнении
self.error_handler.check_response (response) Файл "/home/vicky/.local/lib/python3.6/site-packages/selenium/webdriver/remote/errorhandler.py",
строка 242, в check_response
повысить исключение_класса (сообщение, экран, трассировка стека) selenium.common.exceptions.WebDriverException: сообщение: ошибка
Переадресация нового сеанса. Ошибка переадресации запроса.
172.18.0.8:5555 [/172.18.0.8] не удалось: Превышено время ожидания соединения (Превышено время ожидания соединения) Stacktrace:
в org.openqa.grid.web.servlet.handler.RequestHandler.process (RequestHandler.java:117)
в org.openqa.grid.web.servlet.DriverServlet.process (DriverServlet.java:84)
на org.openqa.grid.web.servlet.DriverServlet.doPost (DriverServlet.java:68)
на javax.servlet.http.HttpServlet.service (HttpServlet.java:707)
на javax.servlet.http.HttpServlet.service (HttpServlet.java:790)
в org.seleniumhq.jetty9.servlet.ServletHolder.handle (ServletHolder.java:860)
в org.seleniumhq.jetty9.servlet.ServletHandler.doHandle (ServletHandler.java:535)
в org.seleniumhq.jetty9.server.handler.ScopedHandler.nextHandle (ScopedHandler.java:188)
в org.seleniumhq.jetty9.server.session.SessionHandler.doHandle (SessionHandler.java:1595)
в org.seleniumhq.jetty9.server.handler.ScopedHandler.nextHandle (ScopedHandler.java:188)
в org.seleniumhq.jetty9.server.handler.ContextHandler.doHandle (ContextHandler.java:1253)
в org.seleniumhq.jetty9.server.handler.ScopedHandler.nextScope (ScopedHandler.java:168)
в org.seleniumhq.jetty9.servlet.ServletHandler.doScope (ServletHandler.java:473)
в org.seleniumhq.jetty9.server.session.SessionHandler.doScope (SessionHandler.java:1564)
в org.seleniumhq.jetty9.server.handler.ScopedHandler.nextScope (ScopedHandler.java:166)
в org.seleniumhq.jetty9.server.handler.ContextHandler.doScope (ContextHandler.java:1155)
в org.seleniumhq.jetty9.server.handler.ScopedHandler.handle (ScopedHandler.java:141)
в org.seleniumhq.jetty9.server.handler.HandlerWrapper.handle (HandlerWrapper.java:132)
в org.seleniumhq.jetty9.server.Server.handle (Server.java:530)
в org.seleniumhq.jetty9.server.HttpChannel.handle (HttpChannel.java:347)
в org.seleniumhq.jetty9.server.HttpConnection.onFillable (HttpConnection.java:256)
в org.seleniumhq.jetty9.io.AbstractConnection $ ReadCallback.succeeded
(AbstractConnection.java:279)
в org.seleniumhq.jetty9.io.FillInterest.fillable (FillInterest.java:102)в org.seleniumhq.jetty9.io.ChannelEndPoint $ 2.run (ChannelEndPoint.java:124)
в org.seleniumhq.jetty9.util.thread.strategy.EatWhatYouKill.doProduce
(EatWhatYouKill.java:247)
в org.seleniumhq.jetty9.util.thread.strategy.EatWhatYouKill.produce
(EatWhatYouKill.java:140)
в org.seleniumhq.jetty9.util.thread.strategy.EatWhatYouKill.run (EatWhatYouKill.java:131)
в org.seleniumhq.jetty9.util.thread.ReservedThreadExecutor $ ReservedThread.run
(ReservedThreadExecutor.java:382)
в org.seleniumhq.jetty9.util.thread.QueuedThreadPool.runJob (QueuedThreadPool.java:708)
в org.seleniumhq.jetty9.util.thread.QueuedThreadPool $ 2.run (QueuedThreadPool.java:626)
Я также прикрепил скриншот консоли сетки селена, когда используется несколько узлов.
Ссылка здесь, чтобы увидеть картинку