爬虫进阶开发——之自动切换代理IP

当爬取大众点评时会出现爬取不到数据的情况, 这是怎么回事呢? 其实, 是我们的爬虫IP被网站屏蔽了, 这个问题, 选择我们神箭手提供的自动切换代理IP就能解决.

注意:
1. 设置enableProxy=true, 当请求网页后, 返回的状态码是403时, 系统会自动切换代理IP, 不需要调用isAntiSpider回调函数; 否则, 必须调用isAntiSpider回调函数;
2. 个人免费版套餐, 只能接入"普通代理IP"; 个人专业版套餐和个人旗舰版套餐自动接入的是"高匿代理IP"; 企业标准版套餐和企业高级版套餐自动接入的是"企业级专属代理IP", 也可手动选择接入"海外代理", 这两种代理IP质量高, 防屏蔽效果好.

举个栗子:
在configs对象中添加成员enableProxy并设置为true, 并在isAntiSpider回调函数(在configs详解——之回调函数中会详细描述)中对反爬网页进行识别, 就实现了自动切换代理IP

var configs = {
    // configs的其他成员
    ...
    enableProxy: true, // 开启自动切换代理IP
    ...
};

configs.isAntiSpider = function(url, content) {
    if (content.indexOf("您访问网页过于频繁") !== -1) {
        return true;
    }
    return false;
};

由于自动切换代理IP后,先前请求网页用到的HeaderCookie等数据会被清除, 若打算继续使用这些数据, 就需要在onChangeProxy回调函数(在configs详解——之回调函数中会详细描述)中添加这些数据.

举个栗子:
自动切换代理IP后, 给后续要处理的网页增加Cookie

var configs = {
    // configs的其他成员
    ...
    enableProxy: true, // 开启自动切换代理IP
    ...
};

configs.onChangeProxy = function(site) {
    site.addCookie("SUB", "_2A2561tNHDeTxGeRL6lQT-S7Ozz6IHXVZokOPrDV8PUNbmtAKLW3bkW8G");
};

configs.isAntiSpider = function(url, content) {
    if (content.indexOf("Anti_Spider") !== -1) {
        return true;
    }
    return false;
};