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 });