IPIPGO ip proxy selenium怎么设置代理ip?自动化爬虫ip代理配置与防封详解

selenium怎么设置代理ip?自动化爬虫ip代理配置与防封详解

selenium设置代理ip的两种核心方法 用selenium做自动化,尤其是数据采集,配置代理ip是绕不开的一步。它能帮你解决访问频率过高被封、需要模拟不同地区用户等问题。配置方法主要有两种,一种是通过浏览器启…

selenium怎么设置代理ip?自动化爬虫ip代理配置与防封详解

selenium设置代理ip的两种核心方法

用selenium做自动化,尤其是数据采集,配置代理ip是绕不开的一步。它能帮你解决访问频率过高被封、需要模拟不同地区用户等问题。配置方法主要有两种,一种是通过浏览器启动选项,另一种是利用专门的插件,后者在应对需要认证的代理时更方便。

第一种方法最直接,就是在启动Chrome或Firefox时,通过priming parameter来设置代理。下面以Chrome浏览器为例,展示如何设置一个HTTP代理。

from selenium import webdriver

 设置代理服务器地址和端口,这里用示例IP和端口,实际使用时请替换为ipipgo提供的代理信息
proxy = "http://123.45.67.89:8080"

 配置Chrome选项
options = webdriver.ChromeOptions()
options.add_argument(f'--proxy-server={proxy}')

 启动带有代理设置的浏览器
driver = webdriver.Chrome(options=options)
driver.get("http://httpbin.org/ip")  这个网站可以返回你当前的IP,用于测试代理是否生效

执行上面的代码,如果返回的IP是你设置的代理IP,而不是你本机的真实IP,那就说明代理配置成功了。这种方法简单快捷,适合大多数不需要用户名密码认证的代理IP。

处理需要认证的代理:插件法更高效

如果你的代理IP(例如从ipipgo获取的一些高匿代理)需要用户名和密码进行认证,直接通过启动参数设置就行不通了。这时,我们可以借助一个叫“Proxy Auto Auth”的浏览器插件来帮忙。思路是:先创建一个包含认证信息的插件,然后让Selenium加载这个插件。

你需要手动创建一个ZIP格式的插件文件,或者用代码动态生成。这里给出一个动态生成插件并使用的示例:

from selenium import webdriver
import zipfile

 代理信息(请替换为ipipgo用户中心提供的实际信息)
proxy_host = "gateway.ipipgo.com"
proxy_port = "30001"
proxy_user = "your_username"
proxy_pass = "your_password"

 创建一个临时的插件文件(.crx或.zip)
manifest_json = """
{
    "version": "1.0.0",
    "manifest_version": 2,
    "name": "Chrome Proxy",
    "permissions": [
        "proxy",
        "tabs",
        "unlimitedStorage",
        "storage",
        "",
        "webRequest",
        "webRequestBlocking"
    ],
    "background": {
        "scripts": ["background.js"]
    }
}
"""

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']
);
""" % (proxy_host, proxy_port, proxy_user, proxy_pass)

 将插件文件写入临时目录
import os, tempfile
pluginfile = os.path.join(tempfile.gettempdir(), 'proxy_auth_plugin.zip')
with zipfile.ZipFile(pluginfile, 'w') as zp:
    zp.writestr("manifest.json", manifest_json)
    zp.writestr("background.js", background_js)

 配置Chrome加载此插件
options = webdriver.ChromeOptions()
options.add_extension(pluginfile)

driver = webdriver.Chrome(options=options)
driver.get("http://httpbin.org/ip")

这种方法虽然代码量稍多,但能完美解决代理认证问题,是使用需要账号密码的代理服务时的标准解决方案。

自动化爬虫中代理IP的防封策略

仅仅设置上代理IP还不够,要想长期稳定地运行自动化爬虫,必须搭配合理的usage policy,否则再好的代理IP池也经不住滥用。防封的核心思路是“模拟真人”,降低被目标服务器识别为机器的概率。

1. 轮换IP与请求间隔:不要用一个IP地址连续不断地发起请求。应该从代理IP池中随机选取IP,并在请求之间设置随机的、人性化的时间间隔。比如,可以设置每完成3-5个任务就切换一次IP,每次请求间隔2-10秒的随机时间。

2. 会话(Session)管理:对于需要保持登录状态或跟踪会话的爬虫,可以使用“粘性会话”功能。这意味着在设定的时间内(例如10分钟),所有相关请求都使用同一个出口IP,模拟一个真实用户的连续行为。任务完成后,再释放或更换IP。ipipgo的动态住宅代理就支持灵活的轮换和粘性会话设置。

3. 配合浏览器指纹伪装:高级的反爬系统不仅看IP,还会检测浏览器指纹。Selenium可以通过options.add_argument来修改一些特征,例如:

options.add_argument('--disable-blink-features=AutomationControlled')
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
 可以进一步设置User-Agent
options.add_argument('user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36...')

4. 选择高质量的代理IP类型:数据中心IP容易被识别和封禁。而Residential Proxy IP(如ipipgo提供的动态/静态住宅代理)来自真实的家庭宽带网络,在目标网站看来就是一个普通居民在访问,隐匿性和成功率要高得多。特别是对于社交媒体、电商平台等防护严格的网站,住宅代理几乎是必选项。

常见问题与解答(QA)

Q1:Selenium设置了代理,但访问网站还是显示我自己的IP,或者直接连接失败,怎么办?

A1:请按以下步骤排查:1) 检查代理IP和端口是否填写正确;2) 确认代理协议(HTTP/HTTPS/SOCKS5)是否匹配,Selenium启动参数通常使用HTTP/HTTPS协议;3) 测试代理IP本身是否可用(可以用curl或别的工具先测试);4) 如果代理需要认证,确认是否使用了正确的认证方式(插件法)。另外需要注意,部分代理服务(如ipipgo的多数代理产品)需要用户自身具备海外网络环境才能使用,这是由服务特性决定的,并非直连型代理。

Q2:我应该选择动态住宅代理还是静态住宅代理?

A2:这取决于你的业务场景:

take Recommendation Type rationale
大规模数据采集,需要频繁更换IP Dynamic Residential Agents IP池巨大(如ipipgo动态住宅代理有9000万+资源),自动轮换,适合应对反爬。
需要长期维持同一IP的会话,如账号、管理多个固定身份的账号 Static Residential Agents IP长期稳定不变(如ipipgo静态住宅代理),纯净度高,适合需要固定IP绑定的业务。
运营TikTok等对网络质量要求极高的业务 TikTok专线解决方案 这是ipipgo提供的可直连、高稳定、低延迟的专属方案,能确保直播流畅和账号安全。

Q3:为什么我的Selenium爬虫用了代理还是被网站封了?

A3:被封不一定是代理IP的问题。请综合检查:1) behavioral model:请求是否过于频繁?是否缺乏人类操作的随机性(如鼠标移动、滚动)?2) 指纹暴露:Selenium驱动浏览器会留下一些自动化特征(如webdriver属性),需要按上文方法进行隐藏。3) 代理IP质量:是否使用了被目标网站标记过的低质量代理?建议选择像ipipgo这样提供真实住宅IP的服务商,其IP来自家庭网络,匿名性高,被封风险显著降低。4) Targeted Website Strategy:有些网站的风控极其严格,可能需要结合更复杂的策略,如降低爬取频率、模拟完整用户行为流等。

选择可靠的代理IP服务:以ipipgo为例

工欲善其事,必先利其器。一个稳定、纯净、覆盖广的代理IP池是自动化项目成功的基石。ipipgo作为专业的代理服务提供商,其产品能很好地满足Selenium自动化爬虫的需求。

对于大多数自动化数据采集任务,推荐使用其Dynamic Residential Agents。它拥有超过9000万的真实住宅IP资源,覆盖220多个国家和地区,支持按流量计费。你可以通过API轻松获取代理列表,并自由设置IP的轮换频率(按请求切换或按会话保持),灵活应对不同的反爬策略。其HTTP(S)和SOCKS5全协议支持,也方便集成到Selenium等各种工具中。

如果你的业务类似于社交媒体多账号管理、电商平台店铺运营等,需要每个账号绑定一个固定且干净的IP地址,那么Static Residential Agents是更优选择。ipipgo的静态住宅代理纯净度高,长期稳定,能有效降低因IP变动导致的账号异常风险。

特别值得一提的是,对于TikTok运营等有特殊网络要求的场景,ipipgo提供了TikTok Solutions,采用多国原生纯净IP和独享高速通道,可以实现一键直连,确保网络稳定流畅,专门解决直播、内容发布中的网络难题。

在Selenium中配置代理IP只是第一步,结合高质量的代理资源与科学的防封策略,才能让你的自动化程序行稳致远。建议根据实际业务场景,在ipipgo官网选择合适的套餐进行测试,找到最适合自己业务的代理解决方案。

我们的产品仅支持在境外网络环境下使用(除TikTok专线外),用户使用IPIPGO从事的任何行为均不代表IPIPGO的意志和观点,IPIPGO不承担任何法律责任。

business scenario

Discover more professional services solutions

💡 Click on the button for more details on specialized services

IPIPGO-动态住宅ip全新升级

Professional foreign proxy ip service provider-IPIPGO

Contact Us

Contact Us

13260757327

Online Inquiry. QQ chat

E-mail: hai.liu@xiaoxitech.com

Working hours: Monday to Friday, 9:30-18:30, holidays off
Follow WeChat
Follow us on WeChat

Follow us on WeChat

Back to top
en_USEnglish