Proxy -Authentifizierung mit Selen in Python

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Proxy -Authentifizierung mit Selen in Python

by Anonymous » 11 Apr 2025, 21:11

Ich muss Selenium mit authentifiziertem Proxy verwenden. Ich habe gesehen, dass Selen nichts Praktisches hat, nur Proxys ohne Authentifizierung. Wenn ich das Argument ausführte, um den Proxy zu registrieren, öffnet es ein Popup für Sie, um den Benutzernamen und das Passwort einzugeben, dies funktioniert für mich nicht, weil ich 10 Seiten gleichzeitig öffnen muss. Es hat einige Probleme, es ist sehr langsam, die Funktionen auszuführen, alle Compiler, sie in Exe zu verwandeln, identifizieren sie als Virus und Malware und es vervollständigt nicht alle Prozesse, die einfach nicht mehr funktionieren, und vervollständigt den Prozess nur für einige Fenster. Seite.

Code: Select all

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

proxy = Proxy()
proxy.proxy_type = ProxyType.MANUAL
proxy.http_proxy = "username:password@ip:port"
proxy.ssl_proxy = "username:password@ip:port"
capabilities = webdriver.DesiredCapabilities.CHROME.copy()
proxy.add_to_capabilities(capabilities)
< /code>
Der vierte Versuch besteht darin, eine Erweiterung zu verwenden und den Proxy dort zu konfigurieren, ich habe sie verwaltet und es funktioniert sehr gut! Aber einige Fenster öffnen sich nicht in der Sprache, die ich brauche, ich muss es in Portugiesisch öffnen, aber es öffnet gemischt, manchmal in Portugiesisch und manchmal auf Englisch, es war die beste Lösung, aber meine Benutzer sind alle Brasilianer, die Portugiesisch sprechen.  Ich brauche die Fenster, um in Portugiesisch zu öffnen!    def create_chromedriver(PROXY_HOST, PROXY_PORT, PROXY_USER, PROXY_PASS, USER_AGENT, pos_x, pos_y, altura, largura, posicao):
manifest_json = """
{
"version": "1.0.0",
"manifest_version": 2,
"name": "Chrome Proxy",
"permissions": [
"proxy",
"tabs",
"unlimitedStorage",
"storage",
"",
"webRequest",
"webRequestBlocking"
],
"background": {
"scripts": ["background.js"]
},
"minimum_chrome_version":"22.0.0"
}
"""

background_js = """
var config = {
mode: "fixed_servers",
rules: {
singleProxy: {
scheme: "http",
host: "%s",
port: parseInt(%s)
},
bypassList: ["localhost"]
}
};

chrome.proxy.settings.set({value: config, scope: "regular"}, function() {});

function callbackFn(details) {
return {
authCredentials: {
username: "%s",
password: "%s"
}
};
}

chrome.webRequest.onAuthRequired.addListener(
callbackFn,
{urls: [""]},
['blocking']
);

chrome.webRequest.onBeforeSendHeaders.addListener(
function(details) {
for (var i = 0; i < details.requestHeaders.length; ++i) {
if (details.requestHeaders[i].name === 'Accept-Language') {
details.requestHeaders[i].value = 'pt-BR,pt;q=0.9';
break;
}
}
return {requestHeaders: details.requestHeaders};
},
{urls: [""]},
["blocking", "requestHeaders"]
);

""" % (PROXY_HOST, PROXY_PORT, PROXY_USER, PROXY_PASS)

def get_chromedriver(use_proxy=True, user_agent=USER_AGENT, x=pos_x, y=pos_y, alt=altura, larg=largura, posicao_janela=posicao):
path = os.path.dirname(os.path.abspath(__file__))
chrome_options = Options()

if use_proxy:
pluginfile = f'proxy_{posicao_janela}.zip'
with zipfile.ZipFile(pluginfile, 'w') as zp:
zp.writestr("manifest.json", manifest_json)
zp.writestr("background.js", background_js)
chrome_options.add_extension(pluginfile)

#if user_agent:
#    chrome_options.add_argument('--user-agent=%s' % USER_AGENT)

arguments = ['--disable-notifications', '--disable-popup-blocking', f"--window-position={x},{y}", f"--window-size={larg},{alt}"]

for argument in arguments:
chrome_options.add_argument(argument)

driver = webdriver.Chrome(options=chrome_options)
return driver

driver = get_chromedriver(use_proxy=True)
return driver

Top