Maison > développement back-end > Tutoriel Python > Comment empêcher l'adresse IP d'être bloquée par le robot d'exploration Python

Comment empêcher l'adresse IP d'être bloquée par le robot d'exploration Python

little bottle
Libérer: 2019-04-10 17:07:35
avant
3227 Les gens l'ont consulté

Lors de l'écriture d'un robot pour explorer des données, en particulier lors de l'exploration d'une grande quantité de données, étant donné que de nombreux sites Web ont des mesures anti-crawler, il est facile de bloquer leur adresse IP et de ne pas pouvoir continuer à explorer. Cet article résume quelques contre-mesures sur la façon de résoudre ce problème. Ces mesures peuvent être utilisées seules ou en même temps pour de meilleurs résultats.

Faux agent utilisateur

Définissez l'agent utilisateur dans l'en-tête de la demande sur l'agent utilisateur dans le navigateur pour simuler l'accès au navigateur. Par exemple :

headers = {'User-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'}
resp = requests.get(url,headers = headers)
Copier après la connexion

Définissez un intervalle de temps aléatoire entre chaque exploration répétée

# 比如:
time.sleep(random.randint(0,3))  # 暂停0~3秒的整数秒,时间区间:[0,3]
# 或:
time.sleep(random.random())  # 暂停0~1秒,时间区间:[0,1)
Copier après la connexion

Faux cookies

Si vous pouvez y accéder normalement depuis la page du navigateur, vous peut copier les cookies dans le navigateur et les utiliser, tels que :

cookies = dict(uuid='b18f0e70-8705-470d-bc4b-09a8da617e15',UM_distinctid='15d188be71d50-013c49b12ec14a-3f73035d-100200-15d188be71ffd')
resp = requests.get(url,cookies = cookies)
Copier après la connexion
# 把浏览器的cookies字符串转成字典
def cookies2dict(cookies):
    items = cookies.split(';')
    d = {}
    for item in items:
        kv = item.split('=',1)
        k = kv[0]
        v = kv[1]
        d[k] = v
    return d
Copier après la connexion

Remarque : Après avoir utilisé les cookies du navigateur pour lancer une demande, si la fréquence des demandes est trop fréquente, l'adresse IP sera toujours bloqué. Vous pouvez effectuer la vérification manuelle correspondante sur le navigateur (par exemple en cliquant sur l'image de vérification, etc.), puis vous pouvez continuer à utiliser le cookie pour lancer des demandes normalement.

L'utilisation d'un proxy

vous permet d'utiliser plusieurs adresses IP proxy pour l'accès afin d'empêcher la même adresse IP d'initier trop de requêtes et de bloquer l'adresse IP, par exemple :

proxies = {'http':'http://10.10.10.10:8765','https':'https://10.10.10.10:8765'}
resp = requests.get(url,proxies = proxies)
# 注:免费的代理IP可以在这个网站上获取:http://www.xicidaili.com/nn/
Copier après la connexion

【 Cours recommandé : Tutoriel vidéo Python]

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:cnblogs.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal