selenium 使用带密码的socks5代理方法
生活随笔
收集整理的這篇文章主要介紹了
selenium 使用带密码的socks5代理方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
網上搜索了一堆,都說沒辦法設置或者要用第三方全局代理來轉接消息
但在下文中發現wedriver里有代理類,而且有賬戶密碼參數可以輸入,只不過跑不通
使用Selenium Chrome進行代理SOCKS 5身份驗證-python黑洞網
初步分析如果庫中具備代理類的話,應當是可以使用代理的,只不過調用方法有問題
我在使用這段代碼跑的時候,分別出現了代理類型無效、需要設置socket版本的異常
代理類型看下如下定義:
DIRECT = ProxyTypeFactory.make(0, 'DIRECT') # Direct connection, no proxy (default on Windows).MANUAL = ProxyTypeFactory.make(1, 'MANUAL') # Manual proxy settings (e.g., for httpProxy).PAC = ProxyTypeFactory.make(2, 'PAC') # Proxy autoconfiguration from URL.RESERVED_1 = ProxyTypeFactory.make(3, 'RESERVED1') # Never used.AUTODETECT = ProxyTypeFactory.make(4, 'AUTODETECT') # Proxy autodetection (presumably with WPAD).SYSTEM = ProxyTypeFactory.make(5, 'SYSTEM') # Use system settings (default on Linux).UNSPECIFIED = ProxyTypeFactory.make(6, 'UNSPECIFIED') # Not initialized (for internal use).很明顯,只有1、2、4有可能,運氣比較好,選了1就ok了
提示socket版本問題,確實找了一會,先是跟蹤到拋出異常的代碼位置,發現沒有什么有用信息
于是試著嘗試在capbaitlities中添加socksVersion參數,還是報錯
再調試代碼,發現經過? proxy.add_to_capabilities 后,proxy變成capbaitlities的一個字典成員
預算直接改字典里的socksVersion,結果ok
以下是代碼:
def SocketProxyDriver(ProxyIp,us,ps):from selenium.webdriver import Chromefrom selenium.webdriver.common.proxy import Proxy, ProxyTypeproxy = Proxy()proxy.socksProxy = ProxyIpproxy.socksUsername = usproxy.socksPassword = psproxy.proxy_type = ProxyType.MANUALcapabilities = webdriver.DesiredCapabilities.CHROMEproxy.add_to_capabilities(capabilities)capabilities['proxy']['socksVersion'] = 5driver = webdriver.Chrome(desired_capabilities=capabilities)#driver.get("https://baidu.com/")os.system('pause')總結
以上是生活随笔為你收集整理的selenium 使用带密码的socks5代理方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sourceTree 问题解决
- 下一篇: 使用终端登陆服务器