Heim  >  Artikel  >  Backend-Entwicklung  >  So lösen Sie das 403-Problem in Crawlern

So lösen Sie das 403-Problem in Crawlern

零到壹度
零到壹度Original
2018-04-03 11:25:247215Durchsuche

Beim Schreiben eines Crawlers in Python tritt bei html.getcode() das Problem des 403-Zugriffsverbots auf, bei dem es sich um ein Verbot automatisierter Crawler auf der Website handelt. In diesem Artikel wird hauptsächlich die Lösung des 403-Crawler-Problems in Angular2 Advanced vorgestellt. Der Herausgeber hält ihn für recht gut, daher werde ich ihn jetzt mit Ihnen teilen und als Referenz verwenden. Folgen wir dem Editor, um einen Blick darauf zu werfen

Um dieses Problem zu lösen, müssen Sie das Python-Modul urllib2-Modul verwenden

urllib2 Modul Es handelt sich um ein erweitertes Crawler-Crawling-Modul. Es gibt viele Methoden

Verbinden Sie beispielsweise url=http://blog.csdn.net/qysh123

Möglicherweise liegt für diese Verbindung ein 403 Forbidden Access-Problem vor

Um dieses Problem zu lösen, sind die folgenden Schritte erforderlich:

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

User-Agent ist ein browserspezifisches Attribut. Sie können den Quellcode über den Browser anzeigen, um


und dann html=urllib2 anzuzeigen .urlopen(req)

print html.read()

kann den gesamten Webseitencode ohne das 403-Zugriffsverbotsproblem herunterladen.

Für die oben genannten Probleme kann es zur einfachen Verwendung in Zukunft in Funktionen gekapselt werden:

  1. #-*-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)


Die Zufallsfunktion wird verwendet, um automatisch die User-Agent-Informationen des geschriebenen Browsertyps abzurufen. In der benutzerdefinierten Funktion müssen Sie Ihre eigenen schreiben Host, Referrer, GET-Informationen usw. Nach der Lösung dieser Probleme können Sie problemlos darauf zugreifen und die 403-Zugriffsinformationen werden nicht mehr angezeigt.

Natürlich werden einige Websites trotzdem gefiltert, wenn die Zugriffshäufigkeit zu hoch ist. Um dieses Problem zu lösen, müssen Sie eine Proxy-IP-Methode verwenden. . . Lösen Sie es gezielt selbst

Verwandte Empfehlungen:

Python-Crawler behebt 403-Zugriffsverbotsfehler

Python3 HTTP-Fehler 403: Verboten

Python-Crawler 403-Lösung

Das obige ist der detaillierte Inhalt vonSo lösen Sie das 403-Problem in Crawlern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn