Maison  >  Article  >  développement back-end  >  Explication détaillée de la méthode de proxy automatique IP utilisant Python pour explorer les questions d'examen soft

Explication détaillée de la méthode de proxy automatique IP utilisant Python pour explorer les questions d'examen soft

高洛峰
高洛峰original
2017-03-31 10:00:491972parcourir

Récemment, j'ai l'intention de capturer des questions d'examen souples sur Internet pour l'examen. J'ai rencontré quelques problèmes lors de la capture. L'article suivant présente principalement l'utilisation de pythonExploration des informations pertinentes du proxy automatique IP pour les questions d'examen logiciel. L'article le présente en détail. Les amis qui en ont besoin peuvent y jeter un œil ci-dessous.

Avant-propos

Récemment, il y a eu un examen de niveau professionnel sur les logiciels, ci-après dénommé l'examen logiciel afin de mieux réviser et préparer l'examen. , je prévois de récupérer les questions d'examen souples sur www.rkpass.cn

Tout d'abord, laissez-moi vous raconter l'histoire (keng) de l'exploration des questions d'examen souples (shi). Maintenant, je peux toutes explorer automatiquement. les questions dans un certain module, comme indiqué ci-dessous :

Explication détaillée de la méthode de proxy automatique IP utilisant Python pour explorer les questions dexamen soft

Actuellement, les 30 enregistrements de questions de test du superviseur du système d'information peuvent être capturés. Les résultats sont les suivants :

Explication détaillée de la méthode de proxy automatique IP utilisant Python pour explorer les questions dexamen soft

Image du contenu capturé :

Explication détaillée de la méthode de proxy automatique IP utilisant Python pour explorer les questions dexamen soft

Bien que certaines informations puissent être capturées, la qualité du code n'est pas élevée. la capture des superviseurs du système d'information à titre d'exemple. Parce que l'objectif est clair, chacun Les paramètres sont clairs Afin de capturer les informations du papier de test en peu de temps, je n'ai pas fait de Gestion des exceptions. dans la fosse depuis longtemps hier soir.

Revenons au sujet et écrivons aujourd'hui Ce blog est dû au fait que j'ai rencontré un nouveau piège. D'après le titre de l'article, on peut deviner que le nombre de demandes doit. Il y en avait trop, donc l'IP a été bloquée par le mécanisme anti-crawler du site

Explication détaillée de la méthode de proxy automatique IP utilisant Python pour explorer les questions dexamen soft

Une personne vivante ne peut pas mourir étouffée. Les actes de nos ancêtres révolutionnaires racontent. nous qu'en tant que successeurs du socialisme, nous ne pouvons pas succomber aux difficultés, ouvrir des routes à travers les montagnes et construire des ponts sur les rivières Afin de résoudre le problème de la propriété intellectuelle, le proxy IP Cette idée surgit

En cours d'exploration. informations, si la fréquence d'exploration dépasse le seuil défini du site Web, l'accès sera interdit. Habituellement, le mécanisme anti-exploration du site Web est identifié en fonction de l'IP

. Les développeurs de robots doivent donc généralement utiliser deux méthodes pour résoudre ce problème :

1 Ralentir la vitesse d'exploration et réduire la pression sur le site Web cible. la quantité d'exploration par unité de temps. 2. La deuxième méthode consiste à définir l'adresse IP du proxy et d'autres moyens pour briser le mécanisme anti-crawler et continuer à explorer à une fréquence élevée. allez simplement dans le code :

Capture d'écran des résultats en cours d'exécution :

# IP地址取自国内髙匿代理IP网站:http://www.xicidaili.com/nn/
# 仅仅爬取首页IP地址就足够一般使用

from bs4 import BeautifulSoup
import requests
import random

#获取当前页面上的ip
def get_ip_list(url, headers):
 web_data = requests.get(url, headers=headers)
 soup = BeautifulSoup(web_data.text)
 ips = soup.find_all('tr')
 ip_list = []
 for i in range(1, len(ips)):
 ip_info = ips[i]
 tds = ip_info.find_all('td')
 ip_list.append(tds[1].text + ':' + tds[2].text)
 return ip_list

#从抓取到的Ip中随机获取一个ip
def get_random_ip(ip_list):
 proxy_list = []
 for ip in ip_list:
 proxy_list.append('http://' + ip)
 proxy_ip = random.choice(proxy_list)
 proxies = {'http': proxy_ip}
 return proxies

#国内高匿代理IP网主地址
url = 'http://www.xicidaili.com/nn/'
#请求头
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36'}
#计数器,根据计数器来循环抓取所有页面的ip
num = 0
#创建一个数组,将捕捉到的ip存放到数组
ip_array = []
while num < 1537:
 num += 1
 ip_list = get_ip_list(url+str(num), headers=headers)
 ip_array.append(ip_list)
for ip in ip_array:
 print(ip)
#创建随机数,随机取到一个ip
# proxies = get_random_ip(ip_list)
# print(proxies)

De cette façon, lorsque le robot demande, définissez l'adresse IP de la requête. l'IP automatique peut efficacement éviter le simple blocage et l'IP fixe dans le mécanisme anti-crawler

.

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:
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