您的位置:首页 > 代理IP资讯
发布时间:2021-01-22 15:36:38
爬虫使用代理ip后,如何判断代理IP使用成功?

  爬虫或采集软件配置好代理后,如何判断代理IP已经使用成功?你可以通过查询IP地址等网站寻求帮助,例如,使用代理IP搜索百度IP或访问ip138.这样的网站会获取HTTP请求的源IP,通过HTTP内容返回。所以,如果代理IP转发成功,目标网站返回的内容应该是代理IP地址。通常有以下几种情况:

 

  1.通过代理ip直接转发

  只要将返回的IP地址复制到百度IPip138进行检查,如果是爬虫服务器的IP地址,则表示代理IP转发失败,否则表示代理IP转发成功。

 

  2.代理多次转发它

  查询IP地址网站返回的内容既不是爬虫服务器的IP地址,也不是爬虫程序或采集软件直接使用的代理IP地址,而是被代理IP多次转发后最终请求IP地址的网站的代理IP地址。

 

  3.代理自动转发

  有些代理IP产品会根据爬虫或采集软件的每次HTTP请求自动分配不同的代理IP进行转发,每次查询得到的IP地址也会不一样,这样在数据采集过程中就可以突破目标网站的IP限制行为。需要注意的是,会有更复杂的情况。有些IP查询网站会根据cookie等信息直接缓存返回的内容。即使代理IP每次请求转发不同的IP,这样的IP查询网站也会返回重复的IP地址,造成代理IP自动转发失败的假象。以下演示示例如下:

 

  封装

  导入(

 

  ' net/url  '

 

  ' net/http  '

 

  字节数

 

  “fmt

 

  io/ioutil  '

 

  )

 

  //代理服务器(产品官网feizhuip.com)

 

  const  Proxy  server=' t  ' :31111

 

  类型ProxyAuth结构{

 

  用户名字符串

 

  密码字符串

 

  }

 

  func(p  proxy  auth)proxy  client()http。客户{var  proxyURL  * url  .统一资源定位器

 

  用户名!=' p。密码!='' {

 

  proxyURL_=url  .解析(' http://' p  . Username  ' : ' p  . Password  ' @ '代理服务器)

 

  }else{

 

  proxyURL_=url  .解析(' http://'代理服务器)

 

  }

 

  返回http  .客户端{Transport: http  .传输{Proxy:http  .proxUrl(proxUrl)} }

 

  }

 

  func  main() {

 

  目标URi  :=' https://httpbin'组织/IP  '

 

  //初始化代理超文本传送协议(Hyper  Text  Transport  Protocol的缩写)客户端

 

  客户端:=代理身份验证{ '用户名''密码' } .ProxyClient()

 

  请求,_ :=http  .NewRequest('GET  'targetURI,字节NewBuffer([]字节(`))

 

  //设置代理隧道

 

  //兰德。种子(时间。现在()UnixNano())

 

  //隧道:=兰特.Intn(10000)

 

  //请求。标头。设置('代理-隧道strconv  .Itoa(隧道) )

 

  响应,err  :=客户端. Do(请求)

 

  如果出错!={死机('未能连接: '错误错误())

 

  } else  {

 

  bodyByteerr  :=ioutil  .ReadAll(响应。正文)

 

  如果出错!={

 

  fmt  .Println('读取身体时出错,err)

 

  返回

 

  }

 

  回应。正文。关闭()

 

  body  :=字符串(体字节)

 

  fmt  .Println('响应状态: ',响应。状态)

 

  fmt  .Println('响应头: ',响应。表头)

 

  fmt  .Println('响应正文:\n  ',正文)

 

  }

 

  }


上一篇 下一篇