作为深耕在爬虫行业的程序员来说,保证代码稳定运行不仅需要深厚的爬虫功底,爬虫防反爬也是至关重要,为了能够有效高速爬取数据,必须要有一个稳定的爬虫ip池支撑。那么如何维护好爬虫ip池呢?怎么样才能事半功倍?
1、网上抓取免费爬虫ip
对爬虫ip进行验证,通过爬虫程序验证爬虫ip是否可用,把能用的爬虫ip列表。但是网上抓取的爬虫ip,可用性都很少,所以需要不间断的抓取爬虫ip,以保障自己的爬虫ip池有足够的ip使用。
2、购买动态隧道转发爬虫ip
网上抓取的免费爬虫ip可用率都很小。对爬虫业务使用没有实际的效果。想要让自己的爬虫业务能更加稳定的采集,这时候就需要在网上找一些优质爬虫ip商,进行高匿隧道转发爬虫爬虫ip购买。一般优质爬虫ip商的隧道转发爬虫ip都是过滤掉了无效IP,每个IP都是真实有效,通过隧道转发爬虫ip来填充自己的IP池,以保障自己的爬虫能稳定采集业务。
3、自建爬虫ip服务器
如果不愿意购买花钱的爬虫ip,愿意花钱的,也可以自己购买爬虫ip远程桌面来获取IP。
隧道转发爬虫ip维护:
<?php标签:花钱,ip,转发,爬虫,command,PROXY,IP From: https://blog.51cto.com/u_13488918/5946919
namespace App\Console\Commands;
use Illuminate\Console\Command;
class Test16Proxy extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'test:16proxy';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Command description';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
$client = new \GuzzleHttp\Client();
// 要访问的目标页面
$targetUrl = "https://www.baidu.com";
// 爬虫ip服务器
define("PROXY_SERVER", "jshk.com.cn:31111");
// 爬虫ip身份信息
define("PROXY_USER", "username");
define("PROXY_PASS", "password");
$proxyAuth = base64_encode(PROXY_USER . ":" . PROXY_PASS);
$options = [
"proxy" => PROXY_SERVER,
"headers" => [
"Proxy-Authorization" => "Basic " . $proxyAuth
]
];
//print_r($options);
$result = $client->request('GET', $targetUrl, $options);
var_dump($result->getBody()->getContents());
}
}
?>