Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
386 views
in Technique[技术] by (71.8m points)

python - How can I set socks4 proxy for selenium?

i need to set socks version 4 but i have a lot of search but i can't find my answer. finally i wrote this codes but i get error

prox = Proxy()
prox.proxy_type = ProxyType.MANUAL
prox.autodetect = False
prox.socks_proxy = '<ip>:<port>'
capabilities = webdriver.DesiredCapabilities.CHROME
prox.add_to_capabilities(capabilities)
browser = webdriver.Chrome(executable_path=chrome_driver_path, options=chrome_options, desired_capabilities=capabilities)
browser.get('https://www.google.com')

My Error

selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: cannot parse capability: proxy
from invalid argument: Specifying 'socksProxy' requires an integer for 'socksVersion'
question from:https://stackoverflow.com/questions/65945281/how-can-i-set-socks4-proxy-for-selenium

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
PROXY = "127.0.0.1:9150"
webdriver.DesiredCapabilities.CHROME['proxy'] = {
    "httpProxy": PROXY,
    "ftpProxy": PROXY,
    "sslProxy": PROXY,
    "proxyType": "MANUAL",
    "socksProxy": PROXY,
    "socksVersion":5

}

you can use desired capabilities , you don't have to pass it as you are updating the capabilities for chrome directly

else you can also use

PROXY = "127.0.0.1:9150"
caps= webdriver.DesiredCapabilities.CHROME.copy()
caps['proxy'] = {
    "httpProxy": PROXY,
    "ftpProxy": PROXY,
    "sslProxy": PROXY,
    "proxyType": "MANUAL",
    "socksProxy": PROXY,
    "socksVersion":5

}
driver = webdriver.Chrome(desired_capabilities=caps)

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...