您的位置:首页 > 新闻资讯 >文章内容
可用的代理服务器地址获取方式
来源:互联网 作者:admin 时间:2019-09-27 10:29:27

  代理服务器用着用着断了,突然被墙了,这种情况确实让人心烦。但是也没有办法,毕竟如今的打压力度比较严厉,能怎么办呢?还不是只能继续找可用代理服务器跟代理IP。下面这个教程教大家获取可用的代理服务器地址,让大家可以自在上网。


可用的代理服务器地址获取方式


  详细代码如下:


  #本程序实现


  #1.从代理网站获取代理服务器列表


  #2.逐个检测代理服务器是否可用


  ##########################################

  package yifangyou;

  use LWP::Simple;

  use LWP::UserAgent;

  use strict;

  use warnings;

  use LWP::Simple qw( $ua get );

  #代理服务器ip和端口存放的地方

  my @proxys=();

  #已经检测完的代理服务器ip和端口存放的地方

  my @checkedProxys=();

  #已经检测完的代理服务器ip和端口存放的地方,我用的百度首页的图标

  my $stdUrl="http://www.baidu.com/img/baidu_sylogo1.gif";

  #代理服务器列表页面的url,可以加多个页面

  my @urls=("http://www.5uproxy.net/http_fast.html");#,"http://www.5uproxy.net/http_anonymous.html","http://www.5uproxy.net/http_non_anonymous.html");

  $ua->timeout(3); # 3秒超时

  $ua->agent("Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)"); # 模拟xp ie7浏览器

  #获取待验证的代理服务器列表

  foreach my $url(@urls){

  getProxyAddr($url);

  }

  #验证代理服务器列表

  foreach my $proxyAddr(@proxys){

  checkProxyAddr($stdUrl,$proxyAddr);

  }

  #输出所有结果

  print join(",",@checkedProxys)."\n";

  #获取待验证的代理服务器列表

  sub getProxyAddr

  {

  my $url=shift;

  my $document = get($url);

  return print "cannot get $url\n" unless defined $document;

  my @lines=split("\n",$document);

  my $i=0;

  my @matches;

  for($i=0;$i<@lines;$i++){

  #获取ip

  if(@matches=$lines[$i]=~/(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/i) {

  my $ip=$matches[0];

  #获取端口

  if(@matches=$lines[$i+1]=~/<td.*>(\d{1,6})<\/td>/i) {

  my $port=$matches[0];

  push(@proxys,"$ip:$port");

  }

  }

  }

  }

  #验证代理服务器列表

  sub checkProxyAddr{

  my $url=shift;

  my $proxyAddr=shift;

  $ua->proxy(['http'], "http://$proxyAddr"); # 设http代理服务器

  my @headcontent=head($url); #取head比较快

  if(scalar(@headcontent)==0){

  # print "Could not get head from $proxyAddr\n";

  return -1;

  }else{

  print "$proxyAddr\n";

  push(@checkedProxys,"$proxyAddr");

  return 0;

  }

  # my $ua = new LWP::UserAgent;

  # $ua->timeout(3); # 3秒超时

  # $ua->proxy(['http'], "http://$proxyAddr"); # 设http代理服务器

  # $ua->agent("Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)"); # 模拟xp ie7浏览器

  # my $req = new HTTP::Request->new(GET => $url);

  # my $res = $ua->request($req);

  # if ($res->is_success){

  # print "$proxyAddr\n";

  # push(@checkedProxys,"$proxyAddr");

  # return 0;

  # }else {

  # print "Could not get head from $proxyAddr\n";

  # return -1;

  # }

  }


  这样我们就算之前在用的代理服务器挂了,通过这个方法,我们也能够找到替补,不用愁了。


相关文章内容简介
推荐阅读
  • 31 2019-12
    爬虫需要掌握哪些技术?

    爬虫需要掌握哪些技术?使用爬虫采集数据已经成为了现在的一种风尚和流行,或者说大数据在未来会变得愈发重要,学习和使用爬虫的人也变得越来越多,那么我们在使用学习爬虫时需要掌握

  • 04 2019-10
    2种对代理服务器防御的方式

    针对代理服务器,我们有防御的必要吗?有时我们也会用到代理IP,是用于营销、爬虫等方面,而如果有人是用于黑客攻击这方面,那就不可取了。所以提高网络保护意识还是很有必要,机灵代理

  • 12 2019-02
    如何获取到HTTP代理?代理的匿名程度检测方法

    由于网站有IP限制,若是需要突破IP限制频繁访问,这是需要使用代理,一般可以使用HTTP代理,绕过了IP的限制。那么如何获取到HTTP代理呢?

  • 22 2019-07
    http代理哪家的质量高?

    http代理哪家的质量高?既然要使用http代理,自然是想个好用的,尤其是工作需要使用http代理,因为http代理质量高,工作效率也就高,都不想加班是吧。

  • 05 2019-06
    ip代理资源对新媒体运营的影响

    ip代理资源对新媒体运营的影响是怎样的?在新媒体运营中如果有ip代理资源的帮助,这工作起来会更加的有效率,效果也会更好,这是为什么呢?

  • 22 2019-05
    最新的免费ip代理如何获取

    最新的免费ip代理如何获取?越早出现的IP,被使用的几率越大,因此这IP地址的质量是难以保证的,那么怎么找到最新的IP代理呢?

在线咨询
大客户经理
大客户经理
1829380381
13316264505

大客户经理微信

微信公众号

微信公众号

回到顶部