Как использовать Crawlera с селеном (Python, Chrome, Windows) без Polipo - PullRequest
0 голосов
/ 06 июня 2018

Так что в основном я пытаюсь использовать Crawlera Proxy из scrapinghub с селеновым хромом на окнах, используя python.

Я проверил документацию, и они предложили использовать Polipo следующим образом:

1) добавлениеследующие строки в / etc / polipo / config

parentProxy = "proxy.crawlera.com:8010"
parentAuthCredentials = "<CRAWLERA_APIKEY>:"

2) добавление этого в драйвер селена

polipo_proxy = "127.0.0.1:8123"
proxy = Proxy({
    'proxyType': ProxyType.MANUAL,
    'httpProxy': polipo_proxy,
    'ftpProxy' : polipo_proxy,
    'sslProxy' : polipo_proxy,
    'noProxy'  : ''
})

capabilities = dict(DesiredCapabilities.CHROME)
proxy.add_to_capabilities(capabilities)
driver = webdriver.Chrome(desired_capabilities=capabilities)

Теперь я бы не хотел использовать Polipo и напрямую использовать прокси.

Есть ли способ заменить переменную polipo_proxy и заменить ее переменной crawlera?Каждый раз, когда я пытаюсь это сделать, он не учитывает это и работает без прокси.

Формат прокси-сервера Crawlera подобен следующему: [API KEY]: @ [HOST]: [PORT]

Я попытался добавить прокси, используя следующую строку:

chrome_options.add_argument('--proxy-server=http://[API KEY]:@[HOST]:[PORT])

, но проблема в том, что мне нужно указать HTTP и HTTPS по-разному.

Заранее спасибо!

1 Ответ

0 голосов
/ 22 октября 2018

Polipo больше не поддерживается и, следовательно, есть проблемы с его использованием.Crawlera требует аутентификации, которую драйвер Chrome не поддерживает на данный момент.Вы можете попробовать использовать веб-драйвер Firefox, так как вы можете установить аутентификацию прокси в пользовательском профиле Firefox и использовать профиль, как показано в Запуск селен за прокси-сервером и http://toolsqa.com/selenium-webdriver/http-proxy-authentication/.

Iстрадал от той же проблемы и получил некоторое облегчение от нее.Надеюсь, это поможет вам.Чтобы решить эту проблему, вы должны использовать драйвер Firefox и его профиль для размещения информации о прокси.

profile = webdriver.FirefoxProfile()
profile.set_preference("network.proxy.type", 1)
profile.set_preference("network.proxy.http", "proxy.server.address")
profile.set_preference("network.proxy.http_port", "port_number")
profile.update_preferences()
driver = webdriver.Firefox(firefox_profile=profile) 

Это полностью сработало для меня.Для справки вы можете использовать вышеуказанные сайты.

...