投稿 资料上传 提问 搜索
您现在的位置是: 首页 > 问答 > 正文

HTTP代理限制如何处理

由于网络爬虫的崛起,互联网网站为了控制网站流量,保证用户的访问速度和访问频率,网站服务器会限制IP访问请求进行限制。而对于网络爬虫用户来说,网站的反爬机制就是一个障碍问题。那么有哪些办法可以解决IP受限的问题呢?

更换User-Agent:

浏览器的标识(User-Agent)也很重要,用户都是一种浏览器,也是容易判断作弊,要构造不同的浏览器标识,否则容易被判定爬虫。用代理访问之后,浏览器标识需要修改,建议浏览器用phantomjs框架,这个可以模拟其他浏览器的标示,可以通过API接口实现各种浏览器的采集模拟。

有些网站会检查你是不是真的浏览器访问,还是机器自动访问的。这种情况,加上User-Agent,表明你是浏览器访问即可。有时还会检查是否带Referer信息还会检查你的Referer是否合法,一般再加上Referer。

User-Agent可以用亿牛云提供给的真实库,Referer的来源可以伪装成百度搜索来的

控制访问频率:

有些网站为有效遏制数据爬取和非法攻击等行为,为了避免这种行为发生,所以目标网站服务器都会有严格的限制访问频率和访问速度,如果一个IP快速的访问目标网站,一般都会被目标网站限制。因为快速访问或者一个IP访问多次,网站服务器就会认为非正常用户访问,目标网站服务器会认为是机器人快速访问,觉得有问题,自然会限制你的IP。这种情况下,我们在使用亿牛云优质代理的时候一定要控制好ip的访问频率和访问次数。

const axios = require('axios');

// 要访问的目标页面
const targetUrl = "http://httpbin.org/ip";

// 代理服务器(产品官网 www.16yun.cn)
const proxyHost = "t.16yun.cn";
const proxyPort = 31111;

// 代理验证信息
const proxyUser = "username";
const proxyPass = "password";

var proxy = {
    host: proxyHost,
    port: proxyPort,
    auth: {
        username: proxyUser,
        password: proxyPass
    }
};


axios.get(targetUrl,{proxy:proxy})
    .then(function (response) {
        // handle success
        console.log(response.data);
    })
    .catch(function (error) {
        // handle error
        console.log(error);
    })
    .finally(function () {
        // always executed
    });              
问题回复

    友情提示

    你好!遇到什么技术难题了嘛?请点击我要提问,我们免费帮您解答!!!

    Linux中的Screen命令Linux之CentOS系统常用命令web前端开发面试题
    大家都在问