百变IP快速接入教程

百变IP提供多种接入方式和接口;

方式一(统一入口,智能转发,免提取使用):使用百变IP-Proxy,统一入口,免提取,设置白名单即可使用,支持多种转发策略;
通道A:proxy.baibianip.com:8000 每次请求随机一个出口IP,每日3~8万可用IP,24小时均匀分布。
通道B:proxy.baibianip.com:8001~8045 这45个端口,每次请求都会固定一个出口IP,IP有效期1-5分钟。

方式二(通过API提取IP:Port列表后使用):用传统方式,使用动态私密代理
先提取后使用:可开通动态私密代理,通过API或者网页提取IP:Port列表后使用,接口可返回IP、Port、IP所在地区、剩余可用时间,支持自定义字段。每日3~8万可用IP,24小时均匀分布,IP有效期1-5分钟。

方式三(通过API提取IP:Port列表后使用):按需定制,可按时长也可按量计费;
先提取后使用:IP有效期1-60分钟,全国300城市,支持按城市筛选,每天300万高匿私密不重复IP代理,可联系客服索取报价单。

所有代理均为高匿私密代理,机房带宽、家庭IP,支持HTTPS、Keep-Alive、POST;

提示:代理均需设置IP白名单或使用用户名/密码认证后才可使用,白名单可通过用户中心手工设置,也可以通过API进行设置。
可以在你的机器上通过访问 http://proxy.baibianip.com:7000/getip.html 来获取当前你机器的出口IP。程序尽量部署到服务器跑,部分小区宽带有多个IP出口。

对于百变IP-Proxy来说,各通道调用方式完全一样,无需任何额外改造,只需在程序中控制请求端口号即可(比如用通道B的8001端口,现在想换一个IP当出口,只需换8002就好,无需发送换IP的命令给我们),简单方便,百变IP会自动切换后端出口IP,百变IP智能转发服务会根据后端服务器的心跳情况、负载情况、网络稳定性、IP分散度等综合因素根据算法智能转发。系统支持Keep-Alive。智能转发服务不会出现因为切换IP而出现服务不能用的情况,平滑切换。
一般来说百变IP-Proxy的通道A和B可以满足大部分使用场景,或者还可查看更多高级转发策略

无论以哪种方式,建议在使用的时候,在程序中将连接超时设置为2秒,读取超时设置为5秒,也可根据自身要抓取的目标站响应程度来设置。如上述通道不能满足需求(比如IP时长、数量、调用方式等),请联系客服,我们会根据你的使用场景给你解决方案和建议,对稳定性和速度及并发要求极高极高的客户,可以联系我们部署私有集群。

可能对你有帮助的链接:
购买代理
各语言编程接入示例
白名单接口文档白名单可登录后手工设置也可以通过API设置,效果一样。

  1. PHP语言接入教程

    PHP如果是使用curl函数来抓取,主要设置下面几项即可。
    curl_setopt($ch, CURLOPT_PROXY, 'proxy.baibianip.com'); //代理服务器地址 curl_setopt($ch, CURLOPT_PROXYPORT, '8000'); //代理服务器端口 如果是抓取HTTPS,把下面两项设置为false: curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //抓HTTPS可以把此项设置为false curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //抓HTTPS可以把此项设置为false 完整示例代码如下,下面提供两种方式来调用:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    //方式一:利用PHP的CURL函数库通过Proxy进行请求
    function curl_via_proxy($url) {
        $user_agent 'curl';
        $ch = curl_init($url); //创建CURL对象  
        curl_setopt($ch, CURLOPT_HEADER, 0); //返回头部  
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //返回信息  
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3); //连接超时时间
        curl_setopt($ch, CURLOPT_TIMEOUT, 5); //读取超时时间
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //对认证证书来源的检查
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //从证书中检查SSL加密算法是否存在
        curl_setopt($ch, CURLOPT_PROXY, 'proxy.baibianip.com'); //代理服务器地址
        curl_setopt($ch, CURLOPT_PROXYPORT, '8000'); //代理服务器端口
        curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
        $res = curl_exec($ch);
        $curl_errno = curl_errno($ch);
        if ($curl_errno) {
            curl_close($ch);
            return false;
        }
        curl_close($ch);
        return $res;
    }
    1
    2
    3
    //方式二:利用PHP调用Linux的curl命令来进行抓取,Windows下下载curl.exe即可。
    $html = shell_exec("curl -x 'proxy.baibianip.com:8000' 'http://www.baidu.com' --connect-timeout 3 -m 5");
    echo $html;
    如果是使用动态代理或者开放代理,则需要先通过API提取代理IP列表,然后使用即可。
  2. Python语言接入教程

    如果在Python中使用urlopen,则可以仿照下面的方式使用即可。
    1
    2
    3
    4
    5
    #coding:utf-8  
    from urllib.request import urlopen  
    proxies = {'http''http://proxy.baibianip.com:8000'}
    handle = urllib.urlopen('http://www.baidu.com', proxies=proxies)
    print(handle.read().decode('utf-8'))
  3. Linux下curl命令接入

    如果使用curl命令,可以直接类似下面的方式调用即可:
    1
    curl -x 'proxy.baibianip.com:8000' 'http://www.baidu.com'  --connect-timeout -m 5
  4. Java语言接入教程

    Java中有很多类库,可以根据你的实际情况自己选择,下面给出3个简单示例。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    //方式一,设置System系统属性
    System.getProperties().setProperty("proxySet""true");       
    System.getProperties().setProperty("http.proxyHost""proxy.baibianip.com");  
    System.getProperties().setProperty("http.proxyPort""8000");  
     
    HttpUrlConnection connection = (HttpUrlConnection)new URL("http://www.baidu.com/").openConnection();  
    connection.setConnectTimeout(3000); //设置连接超时为3秒 
    connection.setReadTimeout(5000);  //设置读取超时为5秒
    connection.setUseCaches(false);  
     
    if(connection.getResponseCode == 200){  
        System.out.println("使用代理IP连接网络成功");  
    }  
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    方式二,使用java.net.Proxy类
    Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("proxy.baibianip.com"8000);       
    HttpUrlConnection connection = (HttpUrlConnection)new URL("http://www.baidu.com/").openConnection(proxy);  
    connection.setConnectTimeout(3000); // 3s  
    connection.setReadTimeout(5000);  
    connection.setUseCaches(false);  
     
    if(connection.getResponseCode == 200){  
        System.out.println("使用代理IP连接网络成功");  
    }  
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    方式三,使用gargoylesoftware类
    import com.gargoylesoftware.htmlunit.BrowserVersion;
    import com.gargoylesoftware.htmlunit.Page;
    import com.gargoylesoftware.htmlunit.ProxyConfig;
    import com.gargoylesoftware.htmlunit.WebClient;
    import com.gargoylesoftware.htmlunit.WebResponse;
    import com.gargoylesoftware.htmlunit.html.HtmlPage;
    import com.gargoylesoftware.htmlunit.util.NameValuePair;
     
    WebClient client = new WebClient(versions[(int)(versions.length * Math.random())]);
    ProxyConfig proxyConfig = new ProxyConfig('proxy.baibianip.com',8000);
    client.getOptions().setProxyConfig(proxyConfig);
    Page page = client.getPage("http://www.baidu.com/");
    WebResponse response = page.getWebResponse();
  5. 其他语言接入

    所有语言或者工具比如casperjs等,都大同小异,在发送HTTP请求的地方肯定有设置proxy的地方。
  6. 在浏览器或者软件中使用

    如果是在浏览器(比如Chrome,IE等)中使用,则在Internet Explorer设置系统代理即可。
    在IE菜单中找到,“工具” -> “Internet选项” -> “连接” -> “局域网设置” -> “代理服务器”,设置即可。
    
    如果在某些抓取软件中使用,根据每个软件不同的情况,可以选择填入提取链接(在线生成)、或者IP列表(在线提取),或者代理入口地址。