您的位置:首页 > 新闻资讯 >文章内容
可用的代理服务器地址获取方式
来源:互联网 作者: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;

  # }

  }


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


相关文章内容简介
推荐阅读
  • 22 2020-06
    如何获取国内的高质量代理IP

    究竟是先有代理IP,还是先有网络爬虫呢?这二者究竟是哪一个先出现,网络上好像没有一个明确的时间界限点,但是比这个问题更令人好奇的是,代理IP的这些IP来源是从哪里找到的呢?

  • 27 2019-11
    看看独享IP与共享IP要怎么选择

    虽然知道独享IP跟共享IP的主要区别,但是落实到选择使用方面,很多用户都表示实在不太清楚要怎么选择才是最合适的。下面我们来看看不同的使用场景要选择什么样的代理IP才好?

  • 13 2021-01
    关于代理IP的三大益处

    代理IP,是一种信息服务项目,依据运用新的互联网ip来取代自身互联网ip进行访问和操作过程。大家在上网的状况下,可以依据代理IP来取代本身的真实IP,那般做有什么益处呢呢:

  • 15 2019-05
    分布式高质量代理IP

    在大数据时代,爬虫已成为互联网数据公司的关键职位。他们不仅要精通数据捕获和分析,还要熟悉搜索引擎和相关的搜索算法。其次还要熟悉搜索引擎和相关检索算法,对内存、性能、分布式

  • 11 2019-03
    Python爬虫使用代理IP可以无限采集吗?

    Python爬虫要想大施拳脚,想必是需要一些辅助的工具,我们最常见到的工具有代理IP,爬虫有了代理IP可以如虎添翼,大大加快工作的效率,因此代理IP对于爬虫来说是一款必备的工具。

  • 20 2020-04
    你应该了解的代理IP知识

    很多人购买代理IP很多时候是为了拥有大量的可更换的IP来应对自身所需求的业务,但是好多人还是对IP还只是处于一知半解,或者压根就是不求甚解,得过且过不深入了解,不深入学习。导致后

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

大客户经理微信

微信公众号

微信公众号

回到顶部