在Selenium上设置代理的方法

代理IP 2022-11-04 爬虫代理 345 0
A⁺AA⁻
国外IP代理推荐:
IPIPGO|全球住宅代理IP(>>>点击注册免费测试<<<)
国内IP代理推荐:
天启|企业级代理IP(>>>点击注册免费测试<<<)
神龙|纯净稳定代理IP(>>>点击注册免费测试<<<)

在Selenium上设置代理的方法

您是否打算使用Selenium进行自动化测试或Web抓取?根据您特定的项目要求,您可能需要代理。现在就来发现我们的Selenium代理精选。

Selenium的重要性怎么强调都不过分。如果它没有被用于自动化测试,你会看到web scraper利用它们从javaScript特色的网站上抓取数据。在广泛使用Selenium的两个领域中,都需要代理。

在Selenium上设置代理的方法

在某些情况下,你可以不使用代理;在其他情况下,除非您准备使用其他昂贵的选项,否则代理是必须的。本文将讨论可以与Selenium库一起使用的代理,使其有效地发挥作用。

在讨论代理之前,我们将对Selenium进行概述,以及为什么需要为Selenium提供代理。您还将学习如何设置Selenium以使用代理。


什么是Selenium?

Selenium是浏览器自动化工具。使用此工具,浏览器可以自动执行诸如填写表格,访问网站以及执行浏览器可以执行的各种任务之类的任务。它主要用于自动化测试。

它也可用于Web抓取,因为它可用于查看网页并具有某些Web抓取功能。Selenium支持许多浏览器,包括Chrome,Internet Explorer和Firefox。较旧的Selenium版本支持无头浏览器,例如PhantomJS。

它的语言支持也是它在开发人员中的流行之一,因为它提供了对Python,Java,JavaScript,C#和Ruby的支持。


为什么需要Selenium代理?

代理不是必须的。但是,根据项目要求,您将需要使用代理。如前所述,Selenium用于自动测试和刮纸。对于自动化测试,实际上,除非正在测试本地化,否则实际上不需要代理。

例如,您正在为不同地区开发站点,并且您想测试某些地区出现的语言是否是该地区使用的语言。除了本地化之外,实际上没有理由要使用代理进行自动化测试。

在网页抓取方面,如果需要本地化的网页内容,则还需要代理。当您打算在短时间内向网站发送过多请求时,也需要使用它们。


哪里可以找到更好的Selenium代理

实际上,没有什么比Selenium的最佳代理更好,因为Selenium本身不需要代理。您打算使用Selenium的站点确定了您应该使用的代理。因此,我们将为您提供跨数据中心和住宅代理类别的代理建议。


Selenium的住宅代理

住宅代理是Selenium Web驱动程序的首选代理。这是因为,与数据中心代理不同,住宅代理不容易被检测到。这是因为它们通过住宅IP路由客户的请求,并且这些IP类型比数据中心IP获得更多的信任。住宅代理非常适合访问Instagram,Google和YouTube等复杂站点。下面讨论了一些硒的住宅代理提供商。


1. Bright Data

  • IP池规模:超过7200万

  • 地点:世界所有国家

  • 允许并发:无限

  • 允许的带宽:从20GB开始

  • 费用: 20GB,每月300美元起

Bright Data可以说是市场上最好的住宅代理提供商。它是世界上最大的代理网络,池中有超过7200万个住宅IP地址。有两个原因使Bright Data住宅代理非常适合Selenium。最重要的是Bright Data在每个国家和世界上大多数城市都有代理。这意味着您可以在使用代理时定位到特定位置,这对于使用Selenium测试内容本地化来说是完美的选择。Bright Data的代理服务器具有很高的可替换性,它将在每个Web请求后为您重新分配一个不同的ip地址,从而使其难以被阻止,因此非常适合于Web抓取。


2. Smartproxy

  • IP池大小:超过4000万

  • 地点:全球195个地点

  • 允许并发:无限

  • 允许的带宽:从5GB开始

  • 费用: 5GB每月75美元起

Smartproxy是另一种具有高级代理的住宅代理服务,非常适合使用智能反垃圾邮件系统访问网站以及使用Selenium进行内容本地化测试。就像Bright Data一样,Smartproxy在全球大约195个国家/地区以及全球8个主要城市的代理中拥有良好的地理位置覆盖。他们也有高旋转代理。Smartproxy是希望使用高级代理但预算较小的代理提供商之一。只需75美元,您就可以从其中购买5GB内存。


3. Stormproxies

  • IP池大小: 20万

  • 地点:仅美国和欧盟地区

  • 允许并发:每个端口仅一台设备

  • 费用: 10个端口每月50美元起

Bright Data和Smartproxy有一个共同的问题,它们的代理都具有可耗尽的带宽。就是说,他们的代理是经过计量的,并且在消耗分配给您的带宽之后,您将无法再次使用他们的代理,除非您支付额外的带宽。Stormproxies住宅代理具有无限的带宽-允许您无限使用带宽。但是,出于性能考虑,可以创建的线程数是有限的。Stormproxies住宅代理非常适合于网络抓取,可以与Selenium一起使用以访问大量站点。


4. Soax

  • IP池大小: 850万

  • 地点:仅美国和欧盟地区

  • 允许并发:每个端口仅一台设备

  • 费用: 5GB每月75美元起

Soax是目前发展最迅速的代理商之一,它拥有良好的地理位置覆盖,可以定位到国家,城市,区域或ISP,能满足你对代理的所有需求。最初它们的定价并不是那么合理,但它们已作出了最快的调整,现在定价模式Smartproxy相似,因此也获得了众多的追随者。Soax代理池的大小不是最出众的,只有850万,但却号称是最干净的,它能自动过滤被标记或滥用过的IP。同时它们的代理网络是安全和加密的。性能稳定可靠,并为您提供绝对的匿名性。


Selenium的数据中心代理

数据中心代理是您在市场上可获得的最便宜的代理。它们利用数据中心拥有的IP地址。由于它们的IP地址是由数据中心分配的,因此很容易检测和禁止它们。事实证明,其中一些逃避了侦查和禁令。其中一些已在上面讨论。


1. Myprivateproxy

  • 地点:仅美国和欧盟地区

  • 允许并发:最多100个线程

  • 允许的带宽:无限

  • 费用:每个代理人一个月$ 1.49

MyPrivateProxy可以说是市场上最好的数据中心代理提供商。它的代理服务器是最快的-它们也安全可靠。借助MyPrivateProxy数据中心代理,您可以将Selenium用于Web抓取非本地化的Web内容。这是因为MyPrivateProxy仅具有一些位置支持,因此,它不是用于自动化本地化测试的良好代理提供程序,但是它对于Web抓取非常有效。MyPrivateProxy的某些数据中心由绿色能源供电。他们的代理人很便宜。


2. Highproxies

  • 地点: 10个国家

  • 允许并发:无限

  • 允许的带宽:无限

  • 费用:每个代理人一个月$ 1.40

高代理数据中心代理对于Web抓取和自动化本地化测试都是不错的选择。这是因为与MyPrivateProxy不同,Highproxies在许多国家/地区都有代理,包括美国,加拿大,意大利,以色列,西班牙,德国,法国,荷兰,日本和澳大利亚。高代理在速度,可靠性和安全性方面表现良好。高代理数据中心代理不容易被网站阻止,因为它们不容易被检测到。像MyPrivateProxy一样,高代理可以毫无问题地用于某些复杂的网站,例如Facebook和Twitter。但是,它们比列表中的其他数据中心代理更昂贵。


3. InstantProxies

  • 地点:全球

  • 允许并发:无限

  • 允许的带宽:无限

  • 费用:每个代理人一个月$ 1.00

上面我说过MyPrivateProxy数据中心代理很便宜。InstantProxies实际上更便宜。实际上,只有10美元,您就可以使用10个代理。InstantProxies支持很多位置,但不能让您自己选择位置。在为您出售代理之前,InstantProxies会对代理进行测试,以确保它们正常工作,以避免浪费您的时间。就像MyPrivateProxy一样,它们的代理服务器仅适用于Web抓取而不是Selenium自动化测试。


如何在Selenium上设置代理

开发人员遇到的问题之一是如何在Selenium上设置代理。由于支持的浏览器和编程语言多种多样,因此如何设置代理等问题的答案也各不相同。


Chrome浏览器的Selenium代理设置

在本文的此部分中,我们将研究如何设置Selenium以便与使用Python驱动流行的Chrome浏览器的代理一起使用。

以下代码显示了如何在Selenium上设置代理。该代码适用于Chrome。

from selenium import webdriver  PROXY = "21.65.32.65:3124"  chrome_options = WebDriverWait.ChromeOptions() chrome_options.add_argument('--proxy-server=%s' % PROXY)  chrome = webdriver.Chrome(chrome_options=chrome_options) chrome.get("https://whatismyipaddress.com")

查看代码的最后一行,您可以看到该代码打开了WhatIsMyIpAdress网站,因此您可以看到Chrome正在使用您的首选代理。

添加选项

from selenium import webdriver from selenium.webdriver.chrome.options import Options     ops = Options() # ops.add_argument('--headless') # ops.add_argument('--no-sandbox') # ops.add_argument('--disable-dev-shm-usage') # ops.add_argument('--disable-gpu') print('--proxy-server=http://%s' % proxy) ops.add_argument('--user-agent=%s' % ua) ops.add_argument('--proxy-server=http://%s' % proxy) driver = webdriver.Chrome(executable_path=r"/root/chromedriver", chrome_options=ops) driver.delete_all_cookies() driver.maximize_window()   driver.get("https://whatismyipaddress.com") print(driver.page_source) driver.quit()

对于代理,主要注意这里:

opt .add_argument(“–proxy-server=http://ip:port”)
browser = webdriver.Chrome(chrome_options = opt )


Firefox 的 Selenium 代理设置

另外,您可以添加选项:

from selenium import webdriver from selenium.webdriver.common.proxy import Proxy, ProxyType     proxy = Proxy({     'proxyType': ProxyType.MANUAL,     'httpProxy': my_proxy,     'noProxy': '' })   driver = webdriver.Firefox(proxy = proxy, executable_path=r"/root/geckodriver") driver.delete_all_cookies() driver.maximize_window()   driver.get("https://whatismyipaddress.com") print(driver.page_source) driver.quit()

Selenium 私有代理设置

需要使用用户名和密码进行身份验证:

from selenium import webdriver def create_proxyauth_extension(proxy_host, proxy_port,                                proxy_username, proxy_password,                                scheme='http', plugin_path=None):     """Proxy Auth Extension       args:         proxy_host (str): domain or ip address, ie proxy.domain.com         proxy_port (int): port         proxy_username (str): auth username         proxy_password (str): auth password     kwargs:         scheme (str): proxy scheme, default http         plugin_path (str): absolute path of the extension             return str -> plugin_path     """     import string     import zipfile       if plugin_path is None:         plugin_path = 'd:/webdriver/vimm_chrome_proxyauth_plugin.zip'       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 = string.Template(     """     var config = {             mode: "fixed_servers",             rules: {               singleProxy: {                 scheme: "${scheme}",                 host: "${host}",                 port: parseInt(${port})               },               bypassList: ["foobar.com"]             }           };       chrome.proxy.settings.set({value: config, scope: "regular"}, function() {});       function callbackFn(details) {         return {             authCredentials: {                 username: "${username}",                 password: "${password}"             }         };     }       chrome.webRequest.onAuthRequired.addListener(                 callbackFn,                 {urls: [""]},                 ['blocking']     );     """     ).substitute(         host=proxy_host,         port=proxy_port,         username=proxy_username,         password=proxy_password,         scheme=scheme,     )     with zipfile.ZipFile(plugin_path, 'w') as zp:         zp.writestr("manifest.json", manifest_json)         zp.writestr("background.js", background_js)       return plugin_path   proxyauth_plugin_path = create_proxyauth_extension(     proxy_host="proxy.crawlera.com",     proxy_port=8010,     proxy_username="77409f72fe0c4a3e8413654411de0380",     proxy_password="" )     co = webdriver.ChromeOptions() co.add_argument("--start-maximized") co.add_extension(proxyauth_plugin_path)     driver = webdriver.Chrome(chrome_options=co) driver.get("http://httpbin.org/get")

结    论

Selenium是可用于自动测试和Web抓取JavaScript特色网站的工具之一。根据您需要Selenium的用途,您可能需要使用代理。上面讨论的代理是您可以使用的一些最佳选择。

优质代理ip服务商推荐:

使用方法:点击下方对应产品前往官网→注册账号联系客服免费试用购买需要的套餐前往不同的场景使用代理IP

国外IP代理推荐:
IPIPGO|全球住宅代理IP(>>>点击注册免费测试<<<)
神龙海外代理(>>>点击注册免费测试<<<)
国内ip代理推荐:
天启|企业级代理IP(>>>点击注册免费测试<<<)
神龙|纯净稳定代理IP(>>>点击注册免费测试<<<)

发表评论

发表评论:

扫一扫,添加您的专属销售

扫一扫,添加您的专属销售