日期:2014-05-20  浏览次数:20924 次

一个爬虫里httpclient的代理问题
刚到公司实习,开始做爬虫的一些项目,在做一个抓取点评网上数据的

不用代理的话IP会被禁,访问不了,开始尝试用代理
现在是做了一个抓取产品的方法,配代理写在那个方法里面,每抓一个产品界面的用一次代理,可是每次配置一个代理都很慢,用多线程抓取,可是数据太多了还是很慢。

现在我的想法是不想没次都换代理,用一个代理地址直到被封了再换一个,不知道怎么实现,求大神求助

------解决方案--------------------
使用多线程实现啊,我使用多线程抓取天猫已卖出宝贝数据很快啊

PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();
// Increase max total connection to 200
cm.setMaxTotal(200);
// Increase default max connection per route to 20
cm.setDefaultMaxPerRoute(20);
// Increase max connections for localhost:80 to 50
HttpHost localhost = new HttpHost("locahost", 80);
cm.setMaxPerRoute(new HttpRoute(localhost), 50);

CloseableHttpClient httpClient = HttpClients.custom()
        .setConnectionManager(cm)
        .build();

------解决方案--------------------
线程去设置代理吧