Passer au contenu principal
Dans le contexte d’une lutte de plus en plus intense entre les crawlers et les anti-crawlers, les systèmes de détection des risques des grands sites et applications deviennent de plus en plus robustes, l’une des mesures étant le blocage d’IP. Pour résoudre le problème du blocage d’IP, une méthode efficace consiste à configurer un proxy. Une fois le proxy configuré, le crawler peut utiliser l’IP du proxy pour masquer sa véritable adresse IP, contournant ainsi les restrictions anti-crawler. Cependant, la qualité des proxies varie, par exemple, la plupart des proxies gratuits disponibles sur le marché sont presque tous inutilisables ou déjà bloqués, tandis que certains proxies payants ordinaires ont également été ajoutés aux listes noires des systèmes de détection des risques des grands sites et applications. Par conséquent, le nombre de proxies de haute qualité utilisables pour le scraping de données est de plus en plus limité. Actuellement, les types de proxies de qualité relativement élevée disponibles sur le marché incluent les proxies dédiés, les proxies ADSL et les proxies mobiles. Ce service de proxy est basé sur un service de proxy tournant construit sur ADSL, ce document présentera la méthode de demande et d’utilisation de ce service.

Introduction au Proxy ADSL

ADSL, abréviation de Asymmetric Digital Subscriber Line, est une ligne d’abonné numérique asymétrique. L’ADSL se connecte à Internet par le biais d’une connexion par numérotation, nécessitant la saisie d’un nom d’utilisateur et d’un mot de passe ADSL, et chaque connexion change l’IP. Les IP sont réparties sur plusieurs segments A, et si toutes les IP sont utilisables, cela signifie que le volume d’IP peut atteindre des millions. Les proxies basés sur ADSL présentent deux avantages par rapport aux proxies ordinaires construits dans des centres de données : d’une part, les lignes sont principalement celles de China Mobile, China Unicom et China Telecom, plus proches des lignes Internet résidentielles, ce qui réduit la probabilité de blocage d’IP. D’autre part, le volume d’IP est important ; plus le volume d’IP est grand, plus la probabilité de blocage de chaque IP est faible. Ce service de proxy repose sur un grand pool de proxies ADSL, couvrant principalement les lignes en Chine, provenant principalement de serveurs VPS de numérotation de China Mobile, China Unicom et China Telecom, couvrant plus de 100 villes en Chine, avec environ 300 000 IP sortantes par jour. Il prend en charge presque toutes les demandes de données des sites et applications disponibles sur le marché, avec une qualité de proxy très élevée, ce qui réduit considérablement la probabilité de détection des risques.

Méthode de Demande

Pour utiliser le service ADSL, vous pouvez d’abord vous rendre sur la « page de demande » pour faire une demande. La première demande bénéficie d’un quota gratuit de 1 point, soit environ 17,5 Mo. Si vous n’êtes pas encore connecté, vous serez automatiquement redirigé vers la page de connexion. Une fois connecté, vous pouvez continuer la demande. Après avoir soumis votre demande, vous pouvez consulter le résultat de votre demande dans la « console », comme illustré ci-dessous : Cliquez sur « Credentials » pour voir le nom d’utilisateur et le mot de passe pour utiliser le service de proxy ADSL, séparés par un deux-points, où le nom d’utilisateur est de 8 caractères et le mot de passe est de 32 caractères, comme illustré ci-dessous : Ce proxy ADSL est un proxy tournant, donc lors de son utilisation, il suffit de configurer une adresse et un port de proxy fixes. L’adresse et le port du proxy sont respectivement adsl.proxy.acedata.cloud et 30005, et il s’agit d’un proxy pour les protocoles HTTP/HTTPS/SOCKS, pouvant être utilisé pour accéder aux sites utilisant les protocoles HTTP et HTTPS.

Test de Commande

Une fois que vous avez le nom d’utilisateur et le mot de passe du proxy, la méthode la plus simple consiste à effectuer un test via la ligne de commande curl. Si vous ne l’avez pas encore installé, veuillez consulter https://curl.se/ pour l’installation. Si le nom d’utilisateur et le mot de passe du proxy actuel sont 1f78266a:eff0896726224fa2a99fe82dd1f07562, nous pouvons effectuer un test avec la commande curl suivante :
curl -x 1f78266a:eff0896726224fa2a99fe82dd1f07562@adsl.proxy.acedata.cloud:30005 https://ipinfo.io
Ici, nous utilisons le paramètre -x de curl pour spécifier l’adresse du proxy, le protocole du proxy étant par défaut HTTP/HTTPS. L’URL demandée est https://ipinfo.io, ce site peut renvoyer l’adresse IP réelle de la requête et la région de l’IP. Le résultat de l’exécution est le suivant :
{
  "ip": "183.210.224.227",
  "city": "Jinrongjie",
  "region": "Beijing",
  "country": "CN",
  "loc": "39.9122,116.3561",
  "org": "AS56046 China Mobile communications corporation",
  "postal": "101100",
  "timezone": "Asia/Shanghai",
  "readme": "https://ipinfo.io/missingauth"
}

Intégration de Code

Prenons Python comme exemple pour démontrer la méthode de configuration de ce proxy :
import requests

proxy = 'https://{proxy_username}:{proxy_password}@adsl.proxy.acedata.cloud:30005'

proxies = {
    'http': proxy,
    'https': proxy
}

for _ in range(3):
    resp = requests.get('https://ipinfo.io', proxies=proxies)
    print(resp.text)

Ici, nous déclarons d’abord l’URL du proxy et la définissons comme variable proxy, le protocole étant le protocole http, suivi du nom d’utilisateur et du mot de passe du proxy (c’est-à-dire le nom d’utilisateur et le mot de passe affichés dans la console, séparés par un deux-points), suivi d’un symbole @, puis de l’adresse et du port du proxy. Ensuite, nous déclarons une variable proxies, configurant deux paires clé-valeur, avec les noms de clé http et https, dont les valeurs sont toutes proxy, représentant que pour les sites utilisant les protocoles HTTP et HTTPS, la requête est effectuée via le proxy défini par la variable proxy. Enfin, nous définissons une boucle de trois itérations pour tester le proxy, l’URL demandée étant https://ipinfo.io, ce site peut renvoyer l’adresse IP réelle de la requête et la région de l’IP. Le résultat de l’exécution est le suivant :
{
  "ip": "211.93.135.114",
  "city": "Shanghai",
  "region": "Shanghai",
  "country": "CN",
  "loc": "31.2222,121.4581",
  "org": "AS4837 CHINA UNICOM China169 Backbone",
  "postal": "200000",
  "timezone": "Asia/Shanghai",
  "readme": "https://ipinfo.io/missingauth"
}
{
  "ip": "112.22.109.176",
  "city": "Nanjing",
  "region": "Jiangsu",
  "country": "CN",
  "loc": "32.0617,118.7778",
  "org": "AS56046 China Mobile communications corporation",
  "postal": "210000",
  "timezone": "Asia/Shanghai",
  "readme": "https://ipinfo.io/missingauth"
}
{
  "ip": "39.162.179.215",
  "city": "Yangzhou",
  "region": "Jiangsu",
  "country": "CN",
  "loc": "32.3972,119.4358",
  "org": "AS24445 Henan Mobile Communications Co.,Ltd",
  "postal": "225000",
  "timezone": "Asia/Shanghai",
  "readme": "https://ipinfo.io/missingauth"
}
On peut voir que chaque fois que l’on exécute le code, les résultats obtenus pour les IP de proxy sont aléatoires, et que les régions des IP proviennent effectivement de différentes provinces et villes de Chine. Bien sûr, la méthode de configuration de proxy mentionnée ci-dessus est en réalité une méthode relativement simple. En réalité, le code ci-dessus équivaut à définir un en-tête supplémentaire lors de la requête - Proxy Authorization, donc le code ci-dessus peut également être réécrit comme suit :
import requests
import base64

proxy_host = 'adsl.proxy.acedata.cloud'
proxy_port = '30005'
proxy_username = '{proxy_username}' # 8 caractères de nom d'utilisateur
proxy_password = '{proxy_password}' # 32 caractères de mot de passe

credentials = base64.b64encode(
    f'{proxy_username}:{proxy_password}'.encode()).decode()

proxies = {
    'http': f'http://{proxy_host}:{proxy_port}',
    'https': f'http://{proxy_host}:{proxy_port}'
}

headers = {
    'Proxy-Authorization': f'Basic {credentials}'
}

for _ in range(3):
    resp = requests.get('https://ipinfo.io',
                        proxies=proxies, headers=headers)
    print(resp.text)

On peut voir qu’ici, nous avons défini le nom d’utilisateur et le mot de passe du proxy via l’en-tête de requête Proxy-Authorization (qui doit être encodé en Base64), et le résultat de l’exécution de ce code est également le même. Pour d’autres langages, comme JavaScript avec axios, on peut également utiliser une méthode de configuration similaire :
const axios = require("axios");
const base64 = require("base64");

const proxy_host = "adsl.proxy.acedata.cloud";
const proxy_port = "30005";
const proxy_username = "{proxy_username}"; // 8 caractères de nom d'utilisateur
const proxy_password = "{proxy_password}"; // 32 caractères de mot de passe

const credentials = base64.encode(`${proxy_username}:${proxy_password}`);

const proxies = {
  http: `http://${proxy_host}:${proxy_port}`,
  https: `http://${proxy_host}:${proxy_port}`,
};

const headers = {
  "Proxy-Authorization": `Basic ${credentials}`,
};

for (let i = 0; i < 3; i++) {
  axios
    .get("https://ipinfo.io", { proxies, headers })
    .then((resp) => console.log(resp.data))
    .catch((err) => console.error(err));
}
Le résultat de l’exécution est le même. Pour les méthodes de configuration dans d’autres langages, veuillez vous référer au texte ci-dessus et les réécrire vous-même.

Acheter plus

Si votre forfait est épuisé, vous devez en acheter davantage pour continuer à utiliser ce service de proxy. Pour acheter plus, veuillez vous rendre sur la «page de demande» et cliquer directement sur le bouton «Acheter plus» pour sélectionner, plus vous achetez en une seule fois, moins le prix unitaire est cher.