Maison  >  Article  >  développement back-end  >  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
little bottleavant
2019-04-10 17:06:583180parcourir

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)

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)

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)
# 把浏览器的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

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/

【 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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer