发 帖  
原厂入驻New
[讨论] 网络爬虫nodejs爬虫代理配置
2020-9-1 17:23:09  33 网络爬虫
分享
随着互联网的发展进步,现在互联网上也有许多网络爬虫。网络爬虫通过自己爬虫程序向目标网站采集相关数据信息。当然互联网的网站会有反爬策略。比如某电商网站就会限制一个用户IP的访问频率,从而出现验证码。就算验证码通过了,也不会采集到数据,这也就是所谓的反爬虫策略。所以这种情况下,越来越多的网络爬虫会利用代理IP去进行采集。目标网站限制了一个IP,可以换一个代理IP继续进行业务采集。当然每个人的爬虫程序不同,使用爬虫代理用法也不同。
互联网也有常见的爬虫代理使用方式:
1、传统的API提取的优质代理(传统API提取式代理,通过URL定时获取代理IP信息,需验证IP的可用性、更换代理设置,同时需要设计多线程异步IO,实现代理IP并发处理,不仅繁琐,而且影响效率。)
2、自动转发的爬虫代理(自动转发的爬虫代理IP”通过固定云代理服务地址,建立专线网络链接,代理平台自动实现毫秒级代理IP切换,保证了网络稳定性和速度,避免爬虫客户在代理IP策略优化上投入精力。)
以上是市面上常见的使用爬虫代理方式,针对每个爬虫应用环境和接口不同,需要选择适合自己程序的代理使用方式。
很多爬虫都会选择通过代理商提供的API链接获取代理IP,放在自己的搭建的IP池内进行管理,从而发出请求进行数据采集。当然也有很多爬虫不愿意自己做IP池管理,觉得那种方式使用麻烦。想直接利用代理IP去发出请求获取数据。这时候就需要用自动转发的爬虫代理,代理供应商就会提供一个代理服务器域名信息和用户名、密码。就是比传统的API代理,多了一个认证信息。
在nodejs爬虫中,可以用axios中的proxyhost和proxyport来设置代理服务器,proxyUser和proxyPass设置用户名和密码进行认证。
以下是关于nodejs爬虫使用axios如何配置爬虫代理dmeo:
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    });              


每个爬虫的程序使用的语言框架都不同,以上是比较偏门的爬虫语言框架配置爬虫代理的demo。其他语言配置爬虫代理的demo可以参考以上demo分析百度。

0
2020-9-1 17:23:09   评论 分享淘帖

撰写讨论

你正在撰写讨论

如果你是对讨论或其他讨论精选点评或询问,请使用“评论”功能。

高级模式
您需要登录后才可以回帖 登录 | 注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
发讨论
关闭

站长推荐 上一条 /8 下一条

快速回复 返回顶部 返回列表