selenium python how to set new proxy for every request without opining new browser?

Viewed 16

Every time I opened an new browser in my for loop for set new proxy but is there any way I can set new proxy in every request without opening the new browser. I want browser will be open once then it will be set new proxy for every loop.

here is my code:

from selenium import webdriver 
from selenium.webdriver.chrome.options import Options
from selenium_stealth import stealth
from selenium.webdriver.common.action_chains import ActionChains
import time, csv
from proxy import *


    ip_list = []
    free_proxy_list_func(ip_list) # this function scraping proxy from website
    options = Options()
    options.add_argument("start-maximized")
    options.add_experimental_option("excludeSwitches", ["enable-automation"])
    options.add_experimental_option('useAutomationExtension', False)
    options.add_argument("--disable-blink-features=AutomationControlled")
    driver = webdriver.Chrome(options=options,desired_capabilities = proxy_func(ip_list))
    stealth(driver,
            languages=["en-US", "en"],
            vendor="Google Inc.",
            platform="Win32",
            webgl_vendor="Intel Inc.",
            renderer="Intel Iris OpenGL Engine",
            fix_hairline=True,
            )
    file1 = open('url.txt', 'r')
    Lines = file1.readlines()
    for i in Lines:
        product_link = i
        driver = webdriver.Chrome(options=options,desired_capabilities = proxy_func(ip_list)) #proxy_func(ip_list) this my proxy function
        driver.get(i)

if write driver = webdriver.Chrome(options=options,desired_capabilities = proxy_func(ip_list)) outside of my for loop then it will not set new proxy on every url request.

here is my proxy function:

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.common.proxy import Proxy, ProxyType

def proxy_func(ip_list):
    print('total number of ip',len(ip_list))
    item = random.choice(tuple(ip_list))
    print("ip: ",item)
    proxy_ip_port = item 
    proxy = Proxy()
    proxy.proxy_type = ProxyType.MANUAL
    proxy.http_proxy = proxy_ip_port
    proxy.ssl_proxy = proxy_ip_port
    capabilities = webdriver.DesiredCapabilities.CHROME
    proxy.add_to_capabilities(capabilities)
0 Answers
Related