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<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>
, vous pouvez visualiser le code source via le navigateur pour voir puis
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
#-*-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): ''''' @获取403禁止访问的网页 ''' 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)
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!