Proxy -Authentifizierung mit Selen in PythonPython

Python-Programme
Anonymous
 Proxy -Authentifizierung mit Selen in Python

Post by Anonymous »

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

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post