什么是代理ip?代理ip的用途有哪些?该如何获取代理ip?

Mebius
• 阅读 466

我们在网页中输入网址后发生了什么呢? 1.浏览器获取域名 2.通过DNS协议获取域名对应服务器的ip地址 3.浏览器和对应的服务器通过三次握手建立TCP连接 4.浏览器通过HTTP协议向服务器发送数据请求 5.服务器将查询结果返回给浏览器 6.四次挥手释放TCP连接 7.浏览器渲染结果

其中涉及到了: 应用层:HTTP和DNS 传输层:TCP UDP 网络层:IP ICMP ARP

那为什么需要到用代理呢? 因为在做爬虫的过程中经常会遇到这样的情况: 最初爬虫正常运行,正常抓取数据,一切看起来都很不错,然而喝口茶的功夫可能就会出现错误,比如403 Forbidden 这时候打开网页一看,可能会看到“您的IP访问频率太高”这样的提示。 出现这种现象的原因是网站采取了一些反爬虫措施。 比如,服务器会检测某个IP在单位时间内的请求次数,如果超过了这个阈值,就会直接拒绝服务,返回一些错误信息,这种情况可以称为封IP。 而代理ip就避免了这个问题。

代理ip的获取一、原始方法注入数据

  // 初始化方法
    constructor () {
        // token
        this.token = "Z1QljZOZiT4NTG"

        // 请求地址
        this.req_url = 'http://api.txapi.cn/v1/proxies_ip'
    }

二、开始代理IP

注意:agr 参数是必传;1:HTTP 2:HTTPS 3:SOCKS5

  agent_IP (url, token) {
        let p = new Promise(function (resolve, reject) {
            axios({
                url: url,
                method: 'GET',
                params: {
                    token: token,
                    agr: 1
                }
            }).then(resp => {
                if(resp.data.code !== 200){
                    console.log("查询失败")
                } else {
                    resolve(resp.data)
                }
            })
        })
        return p
    }

三、封装run函数

  // run函数
    run () {
        this.agent_IP(this.req_url, this.token).then(res => {
            console.log(res); // 查询结果
        })
    }

四、完整代码

  const axios = require('axios')

class Parse {
    // 初始化方法
    constructor () {
        // token
        this.token = "Z1QljZOZiT4NTG"

        // 请求地址
        this.req_url = 'http://api.txapi.cn/v1/proxies_ip'
    }

    // 代理IP
    agent_IP (url, token) {
        let p = new Promise(function (resolve, reject) {
            axios({
                url: url,
                method: 'GET',
                params: {
                    token: token,
                    agr: 1
                }
            }).then(resp => {
                if(resp.data.code !== 200){
                    console.log("查询失败")
                } else {
                    resolve(resp.data)
                }
            })
        })
        return p
    }

    // run函数
    run () {
        this.agent_IP(this.req_url, this.token).then(res => {
            console.log(res); // 查询结果
        })
    }
}

if(__filename === process.mainModule.filename) {
    // new一个Parse对象
    const p = new Parse()

    // 调用run方法
    p.run()
}
点赞
收藏
评论区
推荐文章
3A网络 3A网络
2年前
DNS 系列(二):DNS 记录及工作方式,你了解吗?
在上一篇《DNS系列(一):为什么更新了DNS记录不生效?》中,我们主要讲解了DNS和DNS传播,知道了网络通信主要通过IP地址来进行,而域名系统(DNS)则是保证用户在浏览器中输入域名之后,可以访问到对应的网站服务器。那这个过程到底是如何进行的呢?DNS记录DNS记录是位于权威DNS服务器中的指令,提供域和主机名相关的详细信息,
鱼蛮子9527 鱼蛮子9527
2年前
DNS
DNS(DomainNameSystem),主要作用是将域名转成IP,本文主要讲解了DNS的一些基础知识,以及DNS转换域名的过程。DNS是什么绝大多数网络通信都是基于TCP/IP协议,而TCP/IP协议的基础是IP,所以网络中的计算机进行通信都是基于IP而不是我们在浏览器中输入的域名。DNS全程是DomainName
Easter79 Easter79
3年前
tcp编程、socket编程、redis
tcp编程(需要建立连接,三次握手,四次挥手,然后发送信息流,数据包是有序的)udp编程(知道IP、端口直接发送数据,数据包可能是无序的)1、客户端和服务器客!(http
xiguaapp xiguaapp
3年前
tcp的三次握手四次挥手
tcp的三次握手流程:在tcp/ip协议中,tcp协议提供可靠的连接服务,采用三次握手建立一个连接。第一次握手:建立连接时,客户端发送SYN包【synj】到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到SYN包,必须确认客户的SYN(ackj1),同时自己也发送一个SYN包(syn
Stella981 Stella981
3年前
Apache解析和绑定域名
转载修改 如果你想让你上线项目的域名解析的是你本地的IP,该怎么做呢?难道要一个个的改配置文件吗?例:域名为 aaa.com端口默认为80.我试图修改为8080端口,但是出错了1.本地hosts什么是本地hosts?我们知道访问一个域名,通过dns服务器得到该域名所指向的服务器ip地址,然后通过ip地址和服务器建立连接,
Wesley13 Wesley13
3年前
DNS解析全过程分析
DNS解析过程!(https://oscimg.oschina.net/oscnet/cea17faee069f853dc0dcb337b3371124d3.png)1.检查浏览器缓存中是否缓存过该域名对应的IP地址用户通过浏览器浏览过某网站之后,浏览器就会自动缓存该网站域名对应的IP地址,当用户再次访问的时候
Wesley13 Wesley13
3年前
DNS解析过程
DNS解析过程是重点也是难点,下面我按自己的理解一步步来解释,可能有错误之处,欢迎指正。以下步骤中,将DNS缓存中存在域名对应IP则DNS解析成功,用户计算机将直接访问服务器,若DNS服务器缓存中不存在域名对应IP,则自动进入下一步。1.浏览器缓存 当用户通过浏览器访问某域名时,浏览器首先会在自己的缓存中查找是否有该域名对应的IP地址
Wesley13 Wesley13
3年前
HTTP协议探究(序章)
1HTTP协议基于TCP协议(1)TCP三次握手连接HTTP客户端(Chrome浏览器):IP:192.168.1.47端口:59875MSS:1460HTTP服务器(Nginx服务器):IP:45.76.37.162
Wesley13 Wesley13
3年前
TCP三次握手和四次挥手
TCP建立连接为什么是三次握手,而不是两次或四次?TCP,名为传输控制协议,是一种可靠的传输层协议,IP协议号为6。顺便说一句,原则上任何数据传输都无法确保绝对可靠,三次握手只是确保可靠的基本需要。举个日常例子,打电话时我们对话如下:对应为客户端与服务器之间的通信:!(https://oscimg.oschina.net/oscnet
芝士年糕 芝士年糕
2年前
更改配置本地host地址
Hosts是一个没有扩展名的系统文件,主要作用是定义IP地址和主机名的映射关系,就是将一些常用的域名网址与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,如果找到,系统会立即打开对应网页,若没有找到,则系统会再将网址提交DNS域名解析服务器进行IP地址的解析,若发现是被屏蔽