很多第一次使用代理IP的朋友都会有这样的疑惑:在爬虫或者采集软件上配置好代理后,如何判断代理IP是否已经使用成功?天启IP告诉你!
如何判断代理IP是否使用cheng'g其实你可以用这类网站查询IP地址,然后用代理IP后再去浏览器搜索IP或者访问https://www.ip138.com。这类网站会获取HTTP请求的源IP,通过HTTP内容返回。如果代理IP转发成功,目标网站返回的内容应该是代理IP地址。一般有以下几种情况:
1.代理直接转发
只要将返回的IP地址复制成IP或https://www.ip138.com进行检查,如果是爬虫服务器的IP地址,则说明代理IP转发失败,否则说明代理IP转发成功。
2.代理转发了很多次。
IP地址查询网站返回的内容既不是爬虫服务器的IP地址,也不是爬虫或采集软件直接使用的代理IP地址,而是代理IP多次转发后最终请求IP地址的网站的代理IP地址。
3.代理自动转发。
有些代理IP产品会根据爬虫或采集软件的每次HTTP请求,自动分配不同的代理IP进行转发,每次查询得到的IP地址都不一样,这样就可以在数据采集过程中破解目标网站的IP限制行为。注意会有更复杂的情况。有些IP查询网站会根据cookie等信息直接缓存返回的内容。即使代理IP每次请求都转发不同的IP,这类IP查询网站也会返回重复的IP地址,造成代理IP自动转发失败的假象。下面是一个演示示例:
主包装
进口
//代理服务器
const proxy server = " t . 16 yun . cn:31111 "
类型ProxyAuth结构{
用户名字符串
密码字符串
}
func ProxyClient。客户端{
var proxyURL *url。统一资源定位器
如果p .用户名!= "" p .密码!="" {
proxyURL,_ = url。从语法上分析
}否则{
proxyURL,_ = url。从语法上分析
}
返回http。客户端{传输:http。Transport{Proxy:http。ProxyURL}}
}
功能主要{
target uri:= " https://http bin . org/IP "
//初始化代理http客户端
客户端:= ProxyAuth{ "用户名","密码" }。近客户端
请求,_ := http。NewRequest))
//设置代理隧道
//兰特。Seed.UnixNano)
//隧道:= rand。巴拉圭国家技术标准研究院
//请求。标题.设置)
响应,错误:=客户端。做
如果err!=零{
恐慌)
}否则{
bodyByte,err := ioutil。方法
如果err!=零{
fmt。Println
返回
}
回应。身体,靠近
正文:=字符串
fmt。Println
fmt。Println
fmt。Println
}
}