猫史档案馆


企业爬虫选择IP

用户:LaicalLaical查看:0 回复:1 评论:0 创建时间:2020-12-25T16:49:35


爬虫相当于模拟真实用户去访问网站的用户,不是一个普通的用户,爬虫在采集过程中会发出大量请求,目标服务器一般都会限制这样大量的请求,所以就会出现封IP的行为,也就是网站的“反爬虫”机制。最常见的方法就是判断你访问的频率,因为普通人访问网页的频率是不会很快的,如果发现某个IP访问的过快就会将此IP封禁。

网络爬虫是大数据时不可以缺少的一种行业,互联网上的数据非常大,而且每天都在不断的增加,所以采集数据必须依靠网络爬虫。

为了能让爬虫继续工作,就要更换它的IP,常用的方法就是用亿牛云爬虫代理IP来更换,但是代理IP也有很多种类型,不同类型的代理IP适合不同的场景,而最适合爬虫的则是高匿代理IP,亿牛云爬虫代理加强版。

寻找完全适合的爬虫代理需要注意的因素:

1、IP池大的代理商,一般需求量的爬虫业务,一定要选择IP池大的代理商

2、覆盖地区广的代理IP,爬虫代理IP池地区覆盖越广,长期更加稳定

3、一定要选择高匿的爬虫代理加强版,业务才能更加稳定

4、选择稳定性高的爬虫代理IP,可以测试对比稳定性

5、支持大量并发的爬虫代理加强版

6、一定要选择家庭私密真实IP

如果参考这几点选择IP,爬虫业务一定能长期稳定

大数据喵中,企业的发展已经离不开数据的支持。企业可以通过网络爬虫来进行数据收集进行分析,在数据采集的过程中,代理IP是必不可少的。爬虫代理加强版是不可缺少的一部分。

import org.apache.commons.httpclient.Credentials;
import org.apache.commons.httpclient.HostConfiguration;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.UsernamePasswordCredentials;
import org.apache.commons.httpclient.auth.AuthScope;
import org.apache.commons.httpclient.methods.GetMethod;

import java.io.IOException;

public class Main {
    # 代理服务器(产品官网 www.16yun.cn)
    private static final String PROXY_HOST = "t.16yun.cn";
    private static final int PROXY_PORT = 31111;

    public static void main(String[] args) {
        HttpClient client = new HttpClient();
        HttpMethod method = new GetMethod("https://httpbin.org/ip");

        HostConfiguration config = client.getHostConfiguration();
        config.setProxy(PROXY_HOST, PROXY_PORT);

        client.getParams().setAuthenticationPreemptive(true);

        String username = "16ABCCKJ";
        String password = "712323";
        Credentials credentials = new UsernamePasswordCredentials(username, password);
        AuthScope authScope = new AuthScope(PROXY_HOST, PROXY_PORT);

        client.getState().setProxyCredentials(authScope, credentials);

        try {
            client.executeMethod(method);

            if (method.getStatusCode() == HttpStatus.SC_OK) {
                String response = method.getResponseBodyAsString();
                System.out.println("Response = " + response);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            method.releaseConnection();
        }
    }
}


回复

上一页1 页 / 共 1下一页
­­­­­­­­­­­­­­

emm,emm,CVM表示不堪一击

点赞0


评论