Безголовый Chrome (с селеном) НЕ МОЖЕТ запрашивать с сервера PROXY, но запросы могут?

Я пытаюсь использовать Chrome вместе с python webdriver + selenium, но, кажется, он не работает, когда я устанавливаю настройки прокси? Вот мой код:

from selenium import webdriver

PROXY = 'http://42.115.88.220:53281'
chromeOptions = webdriver.ChromeOptions()
chromeOptions.add_argument('--proxy-server=%s' % PROXY)
chromeOptions.add_argument("ignore-certificate-errors")

wbe = webdriver.Chrome(options=chromeOptions)
wbe.get("http://icanhazip.com")

Когда я запускаю вышеуказанные коды, браузер выдает мне сообщение об ошибке: "Этот сайт недоступен":

Этот сайт не может быть достигнут

Соединение было сброшено.
Пытаться:

  • Проверка соединения
  • Проверка прокси и брандмауэра
  • Запуск диагностики сети Windows

ERR_CONNECTION_RESET

Некоторые усилия: я пробовал запросы с моим прокси-сервером, и это работает. Так что это не должно быть проблемой моего прокси-сервера.

import requests

proxies = {"http": "http://42.115.88.220:53281"}
r = requests.get("http://icanhazip.com", proxies = proxies)
print (r.status_code)

Это дает мне код ответа 200 и хороший ответ.

Цель: Моя конечная цель - создать веб-сканер с Chrome без головы с помощью PROXY, поэтому сейчас я сначала тестирую его без головы. Но, похоже, что-то не так с этой проблемой ПРОКСИ.

Я был бы очень признателен, если бы кто-нибудь мог помочь мне с этой проблемой!!!

1 ответ

Попробуй это. Мне кажется, что вы использовали неправильный тип безголового режима. Для браузеров Chrome Selenium важно правильно установить аргумент --headless.

      from selenium import webdriver

PROXY = 'http://ip:port'
chromeOptions = webdriver.ChromeOptions() 
chromeOptions.add_argument('--proxy-server=%s' % PROXY) 
chromeOptions.add_argument("ignore-certificate-errors")
# Headless mode for chrome browser
chromeOptions.add_argument('--headless=chrome')
wbe = webdriver.Chrome('your_driver_path_or_service', options=chromeOptions) 
wbe.get("http://icanhazip.com")
print(wbe.title)
print(wbe.current_url)
print(wbe.page_source)

# Output:
# http://icanhazip.com/
# <html><head><meta name="color-scheme" content="light dark"></head><body><pre 
# style="word-wrap: break-word; white-space: pre-wrap;">your ip
# </pre></body></html>
Другие вопросы по тегам