
Si vous êtes toujours bloqué par votre adresse IP, essayez cette astuce !
Les frères engagés dans les crawlers de réseau comprennent que le lot sous l'image du plus grand casse-tête est l'IP est bloqué. Le matin, le script fonctionne toujours bien, et l'après-midi, il vous donnera un message d'avertissement.403 InterditC'est le moment de sortir le proxy IP, cette bouée de sauvetage. Aujourd'hui nous allons utiliser Python pour obtenir un téléchargeur d'images avec un bouclier, avec le service proxy d'ipipgo pour protéger.
Pourquoi est-ce bien de ne pas utiliser d'IP proxy ?
Il y a trois choses principales à rechercher dans un site web contre les robots d'indexation :Fréquence des demandes, traces IP, caractéristiques de l'utilisateurL'exemple suivant en est la preuve. Les crawlers ordinaires utilisent une IP fixe pour envoyer des requêtes, tout comme la même personne qui frappe à la porte 100 fois par minute, les gardes de sécurité ne vous bloquent pas, ils bloquent qui ? Utiliser une IP proxy revient à frapper à la porte avec un gilet différent à chaque fois, de sorte que les agents de sécurité ne vous reconnaîtront pas du tout.
Exemple de configuration de base pour les IP proxy
proxies = {
'http' : 'http://用户名:密码@gateway.ipipgo.com:9020',
'https' : 'http://用户名:密码@gateway.ipipgo.com:9020'
}
main dans la main avec l'environnement
Installez d'abord ces bibliothèques essentielles (rappelez-vous qu'il est plus rapide de les installer avec les sources de Tsinghua) :
pip install requests pillow retrying -i https://pypi.tuna.tsinghua.edu.cn/simple
Se concentrer sur la porte de configuration d'ipipgo : accéder à leur backend pourLien d'extraction de l'APIChoix proposésIP statique de longue duréeCette propriété intellectuelle survit longtemps et est particulièrement adaptée aux tâches d'exploration qui nécessitent un travail continu.
Le code est écrit de manière à résister au blocage.
Il faut passer directement aux choses sérieuses. Regardez cette cassette.Triple protectiondu code :
from retrying import retry
import requests
from urllib.parse import urlparse
def download_img(url, save_path) : headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0 ; Win64 ; x64)
headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0 ; Win64 ; x64) AppleWebKit/537.36'}
Obtenir l'IP du proxy dynamiquement à partir de l'interface ipipgo
proxy = requests.get("https://ipipgo.com/fetchproxy?type=json").json()
@retry(stop_max_attempt_number=3)
def _download().
resp = requests.get(url, headers=headers.
proxies={"http" : proxy['proxy']},
timeout=15)
resp.raise_for_status()
with open(save_path, 'wb') as f.
f.write(resp.content)
try.
_download()
except Exception as e.
print(f "Download failed : {str(e)}, changing ipipgo's IP...")
return False
return True
Ancien conducteur QA Time
Q : Que dois-je faire si l'IP proxy ne fonctionne soudainement pas ?
A : Le pool d'adresses IP d'origine d'ipipgo a5 secondes de commutation automatiqueil suffit d'ajouter une boucle de réessai dans le code. Si vous rencontrez une IP morte, leur backend peut également rafraîchir manuellement le nœud.
Q : Comment puis-je savoir si la procuration est en vigueur ?
R : Ajoutez une logique de détection dans le code, visitez http://ip.ipipgo.com/checkip avant le téléchargement pour voir si l'IP renvoyée est une IP proxy.
Q : Que se passe-t-il si je veux ouvrir un téléchargement multithread ?
A : ipipgo'sPaquet EntreprisePrise en charge de la concurrence simultanée de 500 IP, chaque thread disposant d'un proxy indépendant, n'oubliez pas de fixer le délai d'attente à plus de 30 secondes.
Formulaire de guide d'évitement des pièges
| nid-de-poule | méthode régler un problème |
|---|---|
| L'IP a été bloquée trop rapidement. | Augmenter la fréquence des changements d'IP dans le backend ipipgo |
| L'image ne se charge pas complètement | Ajoutez le rendu selenium et téléchargez-le. |
| Validé par l'homme-machine du site | Activation du filtrage IP pour les salles de serveurs avec ipipgo |
Dites la vérité.
Ne croyez pas à ces proxies gratuits, sans parler de la lenteur, ils peuvent aussi contenir des chevaux de Troie. ipipgo que j'utilise depuis six mois, le plus grand avantage est queL'attribution de l'IP peut être choisie par l'utilisateur lui-mêmeSi vous voulez récupérer des images de n'importe quelle région, il suffit de choisir le nœud. Récemment, ils ont lancé une campagne, les nouveaux utilisateurs obtiennent 10G de trafic, remplissez le code promo lorsque vous vous inscrivez !IMG2024Vous bénéficiez également d'une capacité supplémentaire de 5G, suffisante pour télécharger des dizaines de milliers d'images.
Un dernier conseil : ne fixez pas un délai trop bas ! Certains sites ralentissent délibérément leur temps de réponse, et le fait de fixer un délai de 10 secondes ou moins permet de se tromper facilement. Si vous utilisez ipipgo, il est recommandé de fixer le délai àDélai d'attente de 15 à 20 secondesLe taux de réussite peut augmenter de 30 %.

