找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 50|回复: 0

[讨论] 如何维护爬虫代理

4

主题

5

帖子

5

积分

贫民

积分
5
laical 发表于 2020-10-13 17:23:55 | 显示全部楼层 |阅读模式
为了保证网络爬虫再爬虫业务中能更高效稳定运行,在使用代理时需要维护一个好的爬虫代理IP池。那如何维护爬虫代理IP呢?
1、网上抓取免费代理
对爬取的代理ip进行验证,通过爬虫程序验证代理是否可用,把能用的代理IP列表。但是网上抓取的代理IP,可用性都很少,所以需要不间断的抓取代理IP,以保障自己的爬虫代理IP池有足够的代理IP使用。
2、购买动态隧道转发代理
网上抓取的免费代理可用率都很小。对爬虫业务使用没有实际的效果。想要让自己的爬虫业务能更加稳定的采集,这时候就需要在网上找一些优质代理商,进行高匿隧道转发爬虫代理IP购买。一般优质代理商的隧道转发代理IP都是过滤掉了无效IP,每个IP都是真实有效,通过隧道转发代理来填充自己的IP池,以保障自己的爬虫能稳定采集业务。
3、自建代理IP服务器
一般不愿意购买付费代理的,愿意花钱的,可以自己购买代理IP服务器来获取IP。
隧道转发代理维护:
  1. <?php   
  2.     namespace App\C**ole\Commands;   
  3.     use Illuminate\C**ole\Command;

  4.     class Test16Proxy extends Command
  5.     {
  6.         /**
  7.          * The name and signature of the c**ole command.
  8.          *
  9.          * @var string
  10.          */
  11.         protected $signature = 'test:16proxy';

  12.         /**
  13.          * The c**ole command description.
  14.          *
  15.          * @var string
  16.          */
  17.         protected $description = 'Command description';

  18.         /**
  19.          * Create a new command instance.
  20.          *
  21.          * @return void
  22.          */
  23.         public function __c**truct()
  24.         {
  25.             parent::__c**truct();
  26.         }

  27.         /**
  28.          * Execute the c**ole command.
  29.          *
  30.          * @return mixed
  31.          */
  32.         public function handle()
  33.         {
  34.             $client = new \GuzzleHttp\Client();
  35.             // 要访问的目标页面
  36.             $targetUrl = "http://httpbin.org/ip";

  37.             // 代理服务器(产品官网 www.16yun.cn)
  38.             define("PROXY_SERVER", "t.16yun.cn:31111");

  39.             // 代理身份信息
  40.             define("PROXY_USER", "username");
  41.             define("PROXY_PASS", "password");

  42.             $proxyAuth = base64_encode(PROXY_USER . ":" . PROXY_PASS);

  43.             $opti** = [
  44.                 "proxy"  => PROXY_SERVER,
  45.                 "headers" => [
  46.                     "Proxy-Authorization" => "Basic " . $proxyAuth
  47.                 ]
  48.             ];
  49.             //print_r($opti**);
  50.             $result = $client->request('GET', $targetUrl, $opti**);
  51.             var_dump($result->getBody()->getContents());
  52.         }
  53.     }
  54. ?>
复制代码

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表