
I. Comment se déroulent les requêtes web PowerShell ?
Quiconque a déjà utilisé Windows sait que PowerShell est un outil précieux. Aujourd'hui, nous allons nous concentrer surInvoke-WebRequestCette commande, en particulier en combinaison avec des scénarios d'IP proxy. Par exemple, lorsque vous collectez des données, vous rencontrez souvent le mécanisme anti-escalade du site web, et cette fois vous devez compter sur l'IP proxy pour renouveler votre vie.
L'utilisation la plus basique ressemble à ceci :
$response = Invoke-WebRequest -Uri "http://example.com"
$response.Content
Cependant, il est facile d'être la cible d'un site dont l'IP est bloquée, cette fois-ci nous devons sortir notre tueur...Services proxy pour ipipgo. Leurs pools d'adresses IP dynamiques sont mis à jour rapidement et conviennent particulièrement aux scénarios qui nécessitent des changements fréquents d'adresses IP.
II. mettre un gilet de procuration sur la demande
La connexion d'un proxy à PowerShell est en fait assez simple, en se concentrant sur la fonction-ProxyCe paramètre. Il y a un petit problème à noter ici : si le proxy a besoin d'une authentification par mot de passe, vous devez utiliser le paramètre-ProxyCredentialParamètres.
Exemple de configuration d'un proxy avec mot de passe
$proxy = "http://123.45.67.89:8888"
$cred = New-Object System.Management.Automation.PSCredential ("username", ("password" | ConvertTo-SecureString -AsPlainText -Force))
Invoke-WebRequest -Uri "https://target.com" -Proxy $proxy -ProxyCredential $credential
Si vous avez du mal à saisir votre mot de passe à chaque fois, vous pouvez essayer les options suivantesService de connexion directe à l'API d'ipipgo. Ils fournissent des adresses proxy avec des paramètres d'authentification et les insèrent directement dans l'URI, éliminant ainsi l'étape d'authentification.
Troisièmement, la stratégie de lutte contre le blocage des IP
Nous partageons ici deux modèles de code pour des scénarios réels :
Option 1 : changer aléatoirement d'IP proxy (avec l'API d'ipipgo)
$ipList = (Invoke-RestMethod "https://ipipgo.com/api/get_proxies").data
foreach ($page in 1..100) {
$randomProxy = $ipList | Get-Random
Invoke-WebRequest -Uri "https://target.com/page/$page" -Proxy $randomProxy
}
Option 2 : Réessai automatique en cas d'exception
try {
$response = Invoke-WebRequest -Uri "https://敏感网站" -Proxy "http://ipipgo动态代理"
} catch {
Write-Host "Contrôle de vent déclenché, changement d'IP..."
$newProxy = (Invoke-RestMethod "https://ipipgo.com/api/rotate_ip").proxy
$response = Invoke-WebRequest -Uri "https://敏感网站" -Proxy $newProxy
}
IV. kit de premiers secours pour les problèmes courants
Q:Pourquoi le proxy renvoie-t-il une erreur 407 lorsqu'il fonctionne ?
R : quatre-vingt-dix pour cent des informations d'authentification ne sont pas correctes, vérifiez trois points : 1) le nom d'utilisateur et le mot de passe n'ont pas d'espace 2) le numéro de port n'est pas correct 3) le protocole du proxy est http ou https. ipipgo avec ipipgo suggère alors de copier directement leur arrière-plan généré par l'adresse complète du proxy.
Q : Comment interrompre le délai d'attente de la demande ?
A : Ajouter d'abord-TimeoutSec 30Paramètres pour prolonger le temps d'attente. Si cela ne fonctionne pas, allez à l'arrière-plan ipipgo pour changer un nœud de salle de serveur à faible latence, la vitesse de réponse de leur ligne BGP nationale peut être contrôlée dans les 200 ms.
Q : Comment puis-je savoir si une procuration est en vigueur ?
R : Il y a une opération en deux temps : d'abord, visitez l'interface de vérification d'ipipgo sans proxy, qui vous renverra l'adresse IP réelle ; ensuite, visitez l'interface avec proxy et comparez si les deux adresses IP sont différentes ou non.
V. Le guide complet pour éviter les pièges
1) Lorsque vous rencontrez des erreurs de certificat SSL, ajoutez-Sauter la vérification du certificatParamètres (PowerShell 7+ uniquement)
2) Lorsque vous devez enregistrer un cookie, utilisez la fonction-SessionParamètres de création d'un objet de session
3) Veillez à ajouter les éléments suivants pour gérer les téléchargements de fichiers volumineux-Fichier de sortiepour éviter les débordements de mémoire
Télécharger le fichier dans la position correcte
Invoke-WebRequest -Uri "http://大文件地址" -Proxy $proxy -OutFile "D:/downloads/file.zip"
Enfin, je voudrais vous dire au revoir.ipipgo a récemment mis en ligne un SDK spécifique à PowerShell !La première consiste à utiliser Invoke-WebRequest, qui encapsule les fonctions de réessai automatique et de commutation IP intelligente, et permet d'économiser beaucoup plus d'efforts que le simple Invoke-WebRequest. Les nouveaux utilisateurs s'inscrivent pour envoyer le flux 5G, assez pour tester les scripts pendant un demi-mois.

