Comment configurer un proxy pour le robot d'exploration Python

爱喝马黛茶的安东尼
Libérer: 2019-06-20 10:58:24
original
6960 Les gens l'ont consulté

Certains sites Web auront des mesures anti-crawler correspondantes. Par exemple, de nombreux sites Web détecteront le nombre de visites sur une certaine adresse IP au cours d'une certaine période de temps si la fréquence des visites est trop rapide et ne ressemble pas à celle d'un visiteur normal. , cela peut interdire la visite IP. Nous devons donc configurer des serveurs proxy et changer le proxy de temps en temps. Même si l'adresse IP est interdite, vous pouvez toujours modifier l'adresse IP et continuer l'exploration.

Comment configurer un proxy pour le robot d'exploration Python

En Python, vous pouvez utiliser le ProxyHandler dans urllib2 pour configurer un serveur proxy. Le code suivant explique comment utiliser le proxy :

import urllib2
# 构建了两个代理Handler,一个有代理IP,一个没有代理IP
httpproxy_handler = urllib2.ProxyHandler({"http" : "124.88.67.81:80"})
nullproxy_handler = urllib2.ProxyHandler({})
#定义一个代理开关
proxySwitch = True 
# 通过 urllib2.build_opener()方法使用这些代理Handler对象,创建自定义opener对象
# 根据代理开关是否打开,使用不同的代理模式
if proxySwitch:  
    opener = urllib2.build_opener(httpproxy_handler)
else:
    opener = urllib2.build_opener(nullproxy_handler)
request = urllib2.Request("http://www.baidu.com/")
# 使用opener.open()方法发送请求才使用自定义的代理,而urlopen()则不使用自定义代理。
response = opener.open(request)
# 就是将opener应用到全局,之后所有的,不管是opener.open()还是urlopen() 发送请求,都将使用自定义代理。
# urllib2.install_opener(opener)
# response = urlopen(request)
print response.read()
Copier après la connexion

Utilisé. ci-dessus Il s'agit d'un proxy ouvert gratuit. Nous pouvons collecter ces proxys gratuits sur certains sites Web proxy. S'ils peuvent être utilisés après les tests, nous les collecterons et les utiliserons sur le robot d'exploration.

Recommandations associées : "Tutoriel vidéo Python"

Site Web proxy gratuit :

Proxy gratuit des Western Spurs

Procuration rapide gratuite

IP proxy national

Si vous avez suffisamment de proxys, vous pouvez les mettre dans une liste et sélectionner au hasard un proxy pour accéder au site Web. Comme suit :

import urllib2
import random
proxy_list = [
    {"http" : "124.88.67.81:80"},
    {"http" : "124.88.67.81:80"},
    {"http" : "124.88.67.81:80"},
    {"http" : "124.88.67.81:80"},
    {"http" : "124.88.67.81:80"}
]
# 随机选择一个代理
proxy = random.choice(proxy_list)
# 使用选择的代理构建代理处理器对象
httpproxy_handler = urllib2.ProxyHandler(proxy)
opener = urllib2.build_opener(httpproxy_handler)
request = urllib2.Request("http://www.baidu.com/")
response = opener.open(request)
print response.read()
Copier après la connexion

Ceux ci-dessus sont tous des proxys gratuits, qui ne sont pas très stables et ne peuvent souvent pas être utilisés. À l'heure actuelle, vous pouvez envisager d'utiliser un proxy privé. C'est-à-dire acheter un agent auprès d'un fournisseur d'agents. Le fournisseur fournira un agent valide avec son propre nom d'utilisateur et son propre mot de passe. L'utilisation spécifique est la même que celle d'un agent gratuit, comme suit :

# 构建具有一个私密代理IP的Handler,其中user为账户,passwd为密码
httpproxy_handler = urllib2.ProxyHandler({"http" : "user:passwd@124.88.67.81:80"})
Copier après la connexion

Ce qui précède est La méthode de configuration d'un proxy à l'aide de urllib2 semble un peu gênante. Voyons comment utiliser les requêtes pour utiliser le proxy.

Utilisez un proxy gratuit :

import requests
# 如果代理需要使用HTTP Basic Auth,可以使用下面这种格式:
proxy = { "http": "mr_mao_hacker:sffqry9r@61.158.163.130:16816" }
response = requests.get("http://www.baidu.com", proxies = proxy)
print response.text
Copier après la connexion

Remarque : vous pouvez écrire le mot de passe du compte dans les variables d'environnement pour éviter les fuites

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:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal