在 selenium 中设置代理

时间:2021-03-03 14:19:25

标签: python selenium

我需要在 selenium 中设置 ip:port:user:pass 代理以在执行 10 次脚本后自动刷新。我怎么能做到这一点?我正在使用 Python 硒

var config = {
    mode: "fixed_servers",
    rules: {
        singleProxy: {
            scheme: "http",
            host: "X",
            port: parseInt(X)
        },
        bypassList: ["foobar.com"]
    }
};

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

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

1 个答案:

答案 0 :(得分:0)

为什么不动态生成你的 `background.js 文件?


import zipfile


PROXY_HOSTS = ['proxy1', 'proxy2']
PROXY_PORT = 8080
PROXY_USER = ['user1', 'user2'] 
PROXY_PASS = ['password1', 'password2']

backgroundjs = """
var config = {
        mode: "fixed_servers",
        rules: {
          singleProxy: {
            scheme: "http",
            host: "{0}",
            port: parseInt({1})
          },
          bypassList: ["foobar.com"]
        }
      };

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

function callbackFn(details) {
    return {
        authCredentials: {
            username: "{2}",
            password: "{3}"
        }
    };
}
""".format(PROXY_HOST, PROXY_PORT, PROXY_USER, PROXY_PASS)

那么:

使用您的变量创建 zip:

myproxies = zip(PROXY_HOSTS, PROXY_USER, PROXY_PASS)

你会得到类似的东西:

[('proxy1', 'user1', 'password1'), ('proxy2', 'user2', 'password2')]

迭代并保存:

with zipfile.ZipFile(pluginfile, 'w') as selzip:
    selzip.writestr("background.js", backgroundjs)
相关问题