
Essayez cette opération pour sauver votre vie !
Récemment, j'aidais un ami à construire un site web de comparaison de prix, et lorsque j'ai écrit un crawler en Laravel, le site web cible a toujours bloqué mon IP. J'étais tellement en colère que j'ai failli casser mon clavier, mais je me suis soudain souvenu que j'avais utilisé la commandeLa grande rotation des IP par procurationCette méthode est comme un jeu de "visage", changeant l'adresse IP de chaque demande. Cette méthode s'apparente franchement à un jeu de "visage", chaque demande portant une adresse IP différente, de sorte que le système anti-crawler ne peut pas comprendre le nord.
Environnement proxy IP pratique
Tout d'abord, comment vivre l'IP proxy dans Laravel, ne soyez pas idiot d'utiliser le fichier natif file_get_contents, utilisons le composant professionnel GuzzleHttp. Utilisons le composant professionnel GuzzleHttp :
composer require guzzlehttp/guzzle
C'est là que le bât blesse ! Ajoutez ces trois lignes au fichier .env :
PROXY_IP=114.220.114.220
PROXY_PORT=8888
PROXY_TYPE=http
Commutation dynamique de l'IP
Les IP statiques sont toujours exposées après une longue période, vous devez obtenir une adresse IP statique.Mécanisme de rotation du pool IP. Nous recommandons d'utiliser l'API d'ipipgo pour l'obtenir de manière dynamique, leur taux de survie des IP proxy est bien plus élevé que celui de leurs homologues. Voir cet exemple :
utiliser GuzzleHttpClient.
$client = new Client([
'base_uri' => 'https://api.ipipgo.com/' ] ; $client = new Client([ 'base_uri' => '')
]) ; $client = new Client([ 'base_uri' => '' ])
// Obtenir l'IP du proxy
$response = $client->get('proxy/get', [
'query' => [
'key' => env('IPIPGO_APIKEY'), [ 'key' => env('IPIPGO_APIKEY'), [ 'query' => [
'count' => 5
]
]) ;
$proxies = json_decode($response->getBody())->data ;
Schéma de configuration anti-blocage
L'intégration de l'IP proxy dans le crawler doit être stratégique, il ne faut pas utiliser tout le cerveau. Voici le mélange recommandé :
- Pour les demandes à haute fréquenceAgents dynamiques à courte durée d'action(modification de 5 minutes)
- Applications à forte intensité de donnéesProxies statiques de longue durée
- essentiel à la missionpool IP exclusif
Il est plus sûr de mettre en place un middleware de requête dans Laravel :
public function handle($request, Closure $next)
{
$proxy = Cache::remember('current_proxy', 300, function() {
return $this->getFreshProxy() ;
}) ;
config(['proxy.ip' => $proxy->ip]) ;
config(['proxy.port' => $proxy->port]) ;
return $next($request) ;
}
Pièges courants AQ
Q : Combien de fois dois-je utiliser l'IP proxy avant qu'elle n'expire ?
R : 80% utilisent un agent de mauvaise qualité, le mécanisme de détection de survie d'ipipgo est plus fiable, il est recommandé de choisir leur agent.Paquet Entreprise
Q : Que dois-je faire si le proxy ralentit la requête ?
A : 1. vérifier l'emplacement géographique du serveur proxy 2. passer au protocole socks5 3. prolonger de manière appropriée le délai d'attente
Q : Comment puis-je savoir si une procuration est en vigueur ?
R : Ajoutez une instruction de débogage au moteur de recherche :
dd($response->getEffectiveUri()).
Le choix du bon prestataire de services est moins compliqué
Il existe un grand nombre de fournisseurs de proxy sur le marché, et ipipgo l'emporte sur trois points clés lors des tests :
- Fréquence des mises à jour de la bibliothèque de PI (plus de 500 nouveaux PI ajoutés par heure)
- Vitesse de réponse aux demandes (moyenne <200ms)
- Stabilité de l'API (disponibilité de 99,9%)
En particulier, leurRoutage intelligentFonctionnalité qui fait correspondre automatiquement les lignes les plus rapides. S'inscrire avec le code promoLARAVEL666Vous bénéficiez également d'une période d'essai de trois jours pour rien.
L'arcane anti-blocage ultime
Une dernière remarque : les adresses IP proxy ne sont pas une panacée, elles doivent être utilisées en conjonction avec ces conseils :
- Déguisement aléatoire de l'agent utilisateur
- Fixer des intervalles de demande raisonnables
- Changement automatique d'adresse IP pour les codes d'état d'exception
N'oubliez pas que le crawler est une bataille de longue haleine, utiliser un bon proxy IP ipipgo c'est comme porter une armure de résurrection. Le jour où vous constaterez que la requête est soudainement libérée, n'oubliez pas de revenir me remercier~.

