Заранее благодарим всех за терпение и доброту. Я новичок в докере, и мне трудно использовать его для выполнения своей задачи. Пожалуйста, дайте мне знать, если я отправил что-то неправильно, вместо того, чтобы голосовать «вниз».
Я работаю над проектом на гусеничном ходу и пытаюсь использовать docker + selenium + несколько прокси. Вот мой идеальный рабочий процесс: один компьютер содержит несколько контейнеров, один скрипт spider (selenium) выполняется в одном контейнере, и каждый сценарий завершает процесс «выборки и рендеринга веб-сайта -> извлечение информации -> обновление локальной базы данных».
Я знаю, как сменить прокси в селене на локальный. Вот часть моего сценария:
def get_driver():
driver = getattr(threadLocal, 'driver', None)
if driver is None:
chromeOptions = webdriver.ChromeOptions()
chromeOptions.add_argument("--headless")
chromeOptions.add_argument('--proxy-server=http://pubproxy.com/api/proxy?format=txt')
prefs = {
"profile.managed_default_content_settings.images": 2,
'disk-cache-size': 4096,
'permissions.default.stylesheet': 2
}
chromeOptions.add_experimental_option('prefs', prefs)
driver = webdriver.Chrome(chrome_options=chromeOptions)
setattr(threadLocal, "driver", driver)
return driver
Я могу завершить процесс "извлекать и отображать сайт -> извлекать информацию -> обновлять локальную базу данных" с помощью прокси-сервера в локальной сети, но я не уверен, что смогу развернутьэто на нескольких док-контейнерах.
Я проверил этот пост: Как настроить специальные параметры прокси-сервера для удаленного веб-привода selenium с python? . Но я все еще не уверен, стоит ли менять прокси в настройках докера, потому что я видел такой пример:
from selenium import webdriver
chrome = webdriver.Remote( command_executor='http://localhost:4444/wd/hub', desired_capabilities=DesiredCapabilities.CHROME )
Если я меняю IP в настройке докера, значит ли это, что мне нужно остановить и открыть его? неоднократно? (Это не идеально для паука?)
Могу ли я передать параметры конфигурации в докер chrome selenium webdriver или мне нужно собрать докер контейнер с предварительно настроенными параметрами прокси-сервера перед его сборкой?
Любой совет по достижению / оптимизации этого рабочего процесса будет принят. Я следую официальному руководству по докеру и заблудился. Искренне надеюсь, что кто-то может помочь мне в правильном направлении.