Maison  >  Article  >  développement back-end  >  Description détaillée de l'erreur d'accès interdit 403 dans le robot d'exploration Python

Description détaillée de l'erreur d'accès interdit 403 dans le robot d'exploration Python

高洛峰
高洛峰original
2017-03-13 09:44:221898parcourir

Cet article présente principalement des informations pertinentes sur l'explication détaillée de l'erreur d'accès interdit 403 dans le robot d'exploration Python. Les amis qui en ont besoin peuvent s'y référer

Le robot d'exploration Python résout l'erreur d'accès interdit 403<.>

Lors de l'écriture d'un robot en Python, html.getcode() rencontrera le problème d'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 avancé d'exploration de robots. 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 pour 403. cette connexion


Pour résoudre ce problème, vous avez besoin des étapes suivantes :


<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>
où User-Agent est un attribut

, vous pouvez visualiser le code source via le navigateur pour voir puis


pour télécharger toute la page Web code sans 403 problèmes d’accès interdit.
html=urllib2.urlopen(req)


print html.read()

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

fonction

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


La fonction aléatoire est utilisée pour obtenir automatiquement les informations User-Agent du type de navigateur qui a été écrite dans la

fonction personnalisée
#-*-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)
, vous devez écrire vos propres informations Host, Referer, GET, etc. pour résoudre ces problèmes. Après ce problème, vous pouvez accéder en douceur et les informations d'accès 403 n'apparaîtront 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

Merci d'avoir lu, j'espère que cela pourra aider tout le monde, merci pour votre soutien à ce site !

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