Maison  >  Article  >  développement back-end  >  Solution à l'erreur 403 dans le robot d'exploration Python

Solution à l'erreur 403 dans le robot d'exploration Python

Y2J
Y2Joriginal
2017-05-15 10:58:084126parcourir

Cet article présente principalement les informations pertinentes sur le robot d'exploration Python pour résoudre l'erreur d'accès interdit 403. Les amis qui en ont besoin peuvent s'y référer

Le robot d'exploration Python pour résoudre l'erreur d'accès interdit 403

Lors de l'écriture d'un robot en Python, html.getcode() rencontrera le problème de l'accès interdit 403. Il s'agit d'une interdiction des robots automatisés sur le site Web. Pour résoudre ce problème, vous devez utiliser le module python urllib2.

Le module urllib2 est un module d'exploration avancé. Il existe de nombreuses méthodes. Par exemple, si vous vous connectez url=http://blog.csdn.NET/qysh123, il peut y avoir un problème d'accès interdit 403 pour cela. connexion


Pour résoudre ce problème, les étapes suivantes sont requises :

<span style="font-size:18px;">req = urllib2.Request(url) 
req.add_header("User-Agent","Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36") 
req.add_header("GET",url) 
req.add_header("Host","blog.csdn.net") 
req.add_header("Referer","http://blog.csdn.net/")</span>
Parmi elles, User-Agent est un

attribut spécifique au navigateur, qui peut être consulté en affichant le code source via le navigateur. Allez sur

puis

html=urllib2.urlopen(req)
print html.read()
pour télécharger tout le code de la page Web sans problème d'accès interdit 403.

Pour les problèmes ci-dessus, il peut être encapsulé dans une

fonction pour faciliter les appels futurs. Le code spécifique :

#-*-coding:utf-8-*- 
 
import urllib2 
import random 
 
url="http://blog.csdn.net/qysh123/article/details/44564943" 
 
my_headers=["Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36", 
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36", 
"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0" 
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/537.75.14", 
"Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0)" 
   
] 
def get_content(url,headers): 
  &#39;&#39;&#39;&#39;&#39; 
  @获取403禁止访问的网页 
  &#39;&#39;&#39; 
  randdom_header=random.choice(headers) 
 
  req=urllib2.Request(url) 
  req.add_header("User-Agent",randdom_header) 
  req.add_header("Host","blog.csdn.net") 
  req.add_header("Referer","http://blog.csdn.net/") 
  req.add_header("GET",url) 
 
  content=urllib2.urlopen(req).read() 
  return content 
 
print get_content(url,my_headers)
La fonction aléatoire est utilisée pour obtenir automatiquement. l'écrit Pour de bonnes informations sur l'agent utilisateur de type navigateur, vous devez écrire vos propres informations sur l'hôte, le référent, GET, etc. dans la

fonction personnalisée Si vous résolvez ces problèmes, vous pouvez y accéder en douceur et. n'apparaissent plus.

Bien sûr, si la fréquence d'accès est trop rapide, certains sites Web seront quand même filtrés. Pour résoudre ce problème, vous devez utiliser une méthode IP proxy. . . Résolvez-le vous-même spécifiquement


[Recommandations associées]

1

Recommandation spéciale : "boîte à outils du programmeur php" V0. 1 version à télécharger

2.

Tutoriel vidéo Python gratuit

3

Tutoriel vidéo sur l'application de Python en science des données

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