
Quand les robots d'indexation rencontrent les CAPTCHA ? Essayez Playwright + Proxy IP.
Récemment, on m'a demandé ce que je devais faire si je recevais toujours des interdictions d'IP de mes sites cibles lorsque j'utilisais Playwright pour l'automatisation. Je connais trop bien ce problème ! L'année dernière, lorsque je faisais de la collecte de données pour le commerce électronique, je devais changer l'adresse IP tous les trois jours, puis j'ai découvert que l'adresse IP du site Web cible était toujours bannie.IP de procuration pour le dramaturgeC'est la bonne chose à faire, c'est la même chose que de changer la plaque d'immatriculation d'une voiture.
Commençons par un scénario réel : la semaine dernière, j'ai aidé un ami à obtenir la surveillance des prix d'un site web de voyage, et une seule IP visitée plus de 50 fois a été pincée. Après être passé à l'agent résidentiel dynamique d'ipipgo, il a fonctionné pendant trois jours d'affilée sans se retourner. À l'intérieur de l'embrasure de la porte, il faut utiliser un sous-langage pour harceler.
Les joueurs de Python regardent ici : trois lignes de code pour injecter des proxies
Les frères Python se souviennent de cette routine :
"`python
from playwright.sync_api import sync_playwright
avec sync_playwright() as p.
La clé réside dans la configuration de ces trois lignes
proxy = {
"serveur" : "gateway.ipipgo.com:8000",
"Nom d'utilisateur" : "Votre numéro de compte".
"mot de passe" : "votre clé"
}
browser = p.chromium.launch(proxy=proxy)
page = browser.new_page()
page.goto("https://目标网站")
...actions de suivi...
“`
prendre notenom d'utilisateur et mot de passeN'utilisez jamais de texte en clair ! Il est recommandé de la stocker dans une variable d'environnement. Le backend d'ipipgo peut générer ce type de chaîne d'authentification directement, ce qui est beaucoup moins gênant que certains fournisseurs de services qui doivent l'épisser eux-mêmes.
Exclusivité JS Gamer : Conseils pour la configuration d'un proxy asynchrone
L'environnement Node.js est enclin à rencontrer le problème du proxy qui ne fonctionne pas, principalement le chargement asynchrone qui foire. Voir ici pour une position correcte :
"`javascript
const { chromium } = require('playwright') ;
(async () => {
const browser = await chromium.launch({
proxy : {
serveur : 'http://gateway.ipipgo.com:8000',
nom d'utilisateur : process.env.IPIPGO_USER,
mot de passe : process.env.IPIPGO_PASS
}
});
const page = await browser.newPage() ;
await page.goto('https://需要访问的地址') ;
// N'oubliez pas de vérifier que l'IP est en vigueur
console.log(await page.evaluate(() => document.body.innerHTML)); ;
})();
“`
Rappel ciblé :N'oubliez pas de passer la procuration au moment du lancement !Le canal proxy d'ipipgo prend en charge les trois protocoles HTTP/HTTPS/SOCKS5, avec le taux de réussite le plus élevé pour le protocole SOCKS5.
Les vétérans de Java doivent voir : le schéma de commutation dynamique du pool de proxy
Les applications d'entreprise représentent environ un tiers du chiffre d'affaires total de l'entreprise.Rotation du pool d'agentsL'utilisation de l'API d'ipipgo pour obtenir dynamiquement des adresses IP est la meilleure solution :
"`java
import com.microsoft.playwright.
public class ProxyDemo {
public static void main(String[] args) {
try (Playwright playwright = Playwright.create()) {
// Obtenir le dernier proxy de l'interface ipipgo.
String[] currentProxy = getIpipgoProxy() ;
BrowserType.LaunchOptions options = new BrowserType.LaunchOptions()
.setProxy(new Proxy("http://"+currentProxy[0]))
.setHeadless(false) ;
Navigateur browser = playwright.chromium().launch(options) ;
Page page = browser.newPage() ;
page.navigate("https://业务网站") ;
System.out.println(page.title()) ;
}
}
private static String[] getIpipgoProxy() {
// Appeler l'API ipipgo pour obtenir une IP dynamique.
// Format de retour [ip:port, nom d'utilisateur, mot de passe].
}
}
“`
Délimiter l'objectif :Avant la création de chaque instance de navigateurLe mode de pool de concurrence ipipgo est particulièrement adapté à ce scénario, et il peut changer plus de 200 IP résidentielles par seconde.
The Complete Pitfalls : J'ai comblé toutes les lacunes que vous avez rencontrées
| symptomatique | étiologie | antidote |
|---|---|---|
| Le proxy est configuré mais ne se connecte pas | Erreur d'orthographe dans l'en-tête du protocole (par exemple, http écrit https) | Fourni par ipipgo多协议兼容通道 |
| Toujours reconnu après l'ouverture d'une session | Fuite de l'empreinte digitale du navigateur | Travailler avec les paramètres de simulation du dispositif du dramaturge |
| Défaillance de l'environnement mobile | Mauvaise correspondance des types d'IP | Passage aux pools d'agents mobiles 4G/5G d'ipipgo |
Question à se poser : avez-vous choisi le bon fournisseur de services d'agence ?
J'ai testé pas moins de 20 services proxy sur le marché, et j'ai finalement choisi ipipgo pour trois raisons :
- Véritable IP résidentielleContrairement à certains fournisseurs de services qui font passer les IP des salles de serveurs pour les leurs.
- limite de trafic zéroVous n'avez pas à vous inquiéter d'être surqualifié.
- Conception exclusive de l'APILa Commission européenne : Obtenir une IP est aussi facile que de héler un taxi
En particulier, leurRoutage intelligent功能,自动选择最低的节点。上次做直播数据采集,8小时跑了70GB流量,IP存活率还在92%以上。
Le temps de l'AQ : les questions les plus fréquentes en un seul endroit
Q : Que dois-je faire si l'adresse IP de mon proxy est souvent invalide ?
R : Passez au proxy résidentiel dynamique d'ipipgo, qui change automatiquement d'adresse IP pour chaque demande et ne laisse aucune chance au site d'être bloqué.
Q : Que se passe-t-il si je dois collecter des données sur des sites web étrangers ?
R : La couverture mondiale d'ipipgo n'est pas négligeable, et même la propriété intellectuelle de l'île Maurice peut être obtenue de manière stable. Il faut toutefois veiller à respecter les lois et réglementations locales.
Q : Comment gérer les proxys avec plusieurs instances de navigateur ouvertes en même temps ?
R : Utiliser leurmode de maintien de la sessionL'adresse IP de chaque instance de navigateur est liée à une adresse IP distincte, de sorte que la logique commerciale est claire et qu'il ne s'agit pas de numéros de série.
Un dernier mot du cœur : les moyens techniques ne sont que des outils.Choisir le bon prestataire de services d'agence, c'est la voie à suivre. Au lieu de mettre de l'anti-blocage dans le code, pourquoi ne pas utiliser un service fiable comme ipipgo et se concentrer sur la logique métier - ça sent bon, non ?

