簡體   English   中英

如何使用selenium和python在無頭chorme瀏覽器中使用代理和身份驗證?

[英]How to use proxy with authentication in headless chorme browser using selenium and python?

我使用過DesiredCapabilities

capabilities = dict(DesiredCapabilities.CHROME)
capabilities['proxy'] = {'proxyType': 'MANUAL',
                         'httpProxy': proxy['address'],
                         'ftpProxy': proxy['address'],
                         'sslProxy': proxy['address'],
                         'noProxy': '',
                         'class': "org.openqa.selenium.Proxy",
                         'autodetect': False
                         }
chrome_options = Options()
chrome_options.add_argument('--headless')

但沒有任何事情發生,如果我刪除無頭,我會看到身份驗證需要警報。

我也用過

chrome_options.add_argument('--proxy-server=http://%s:%s@%s:%s'%(Config.PROXY_USERNAME,Config.PROXY_PASSWORD,Config.PROXY_URL,Config.PROXY_PORT))

但這沒有幫助。 在哪里我將“http”更改為“襪子”,“socks4”和“socks5”,這甚至沒有幫助。

不幸的是,無頭鍍鉻丟棄警報( 問題718235 )並且不支持擴展( 問題706008 ),因此我們不能使用在GUI模式下工作的技巧。 這給我們留下了兩個主要選擇:

選項1 - 代理重定向

無需身份驗證即可運行單獨的代理,並通過身份驗證將其重定向到目標代理。

您可以使用mitmproxy在一行中完成
mitmproxy --mode upstream:http://<target-proxy-ip>:<target-proxy-port> --upstream-auth <user>:<password> -p 3128並將客戶端配置為使用localhost:3128 as代理人。

你可以通過pip安裝mitmproxy: pip install mitmproxy (需要python3)
參考: https //docs.mitmproxy.org/stable/overview-installation/

或者使用Squid代理: Squid:轉發到另一個代理(具有父代理的身份驗證詳細信息)

選項2 - 使用Xvfb顯示服務器

Xvfb在虛擬內存中執行所有圖形操作,而不顯示任何屏幕輸出
參考: https //www.x.org/releases/X11R7.7/doc/man/man1/Xvfb.1.xhtml

以下是與Selenium一起使用它的說明: 如何在Xvfb中運行Selenium?
Xvfb的Python包裝器: https//github.com/ponty/pyvirtualdisplay

祝好運!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM