Добавление поддержки прокси в сценарий открытия мультисессии Selenium в Python - PullRequest
1 голос
/ 19 апреля 2020

Недавно я создал скрипт, который позволяет мне создавать несколько сеансов браузера с одним URL. Я хотел бы добавить поддержку прокси, чтобы не забанить при запуске. Я пытался использовать Proxy lib от selenium, но его просто игнорировали. Мой вопрос: Как я могу добавить поддержку прокси в этот скрипт при использовании Selenium в python? (каждая сессия получит случайный прокси) Вот мой код

Ответы [ 2 ]

1 голос
/ 19 апреля 2020

Вы можете использовать библиотеку stem, которая позволяет использовать Tor в python. Прочтите документы здесь , чтобы узнать, как его использовать.

Две основные части c, отсутствующие в вашем коде, следующие:

  1. from selenium.webdriver.common.proxy import Proxy, ProxyType

  2. chrome_options.add_argument('--proxy-server=#yourproxyhere#'

  3. Tor!

Здесь вы можете увидеть, как я настроить мой проект ствол + селен:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.proxy import Proxy, ProxyType
from time import sleep
from stem import Signal
from stem.control import Controller

#this gives you a new identity 
with Controller.from_port(port = 9051) as controller:
  controller.authenticate()
  controller.signal(Signal.NEWNYM)
  #set the proxy in selenium to 127.0.0.1:9150 and have your Tor Browser open!

link = 'https://some-link.com' #target url
prox= 'socks5://127.0.0.1:9150' #Here you connect to your localhost which connects to a Tor network
#some chrome_options
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--proxy-server=%s' % prox) 
chrome_options.add_argument("--window-size=400,600") 


#the following also deactivates location tracking!
prefs = {"profile.default_content_setting_values.geolocation" :2}
chrome_options.add_experimental_option("prefs",prefs)

driver = webdriver.Chrome("path_to_chromedriver", chrome_options=chrome_options)
driver.get(link)
0 голосов
/ 19 апреля 2020

Вот обновленная версия моего кода, включая новые элементы поддержки прокси, я хочу, чтобы он использовал прокси, формируя текстовый файл через proxies = read_from_txt("proxies.txt") и произвольно вращался между ними, используя произвольную библиотеку lib:

Спасибо за быстрые ответы, действительно ценю это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...