So verhindern Sie, dass IP vom Python-Crawler blockiert wird

little bottle
Freigeben: 2019-04-10 17:07:35
nach vorne
3194 Leute haben es durchsucht

Wenn Sie einen Crawler zum Crawlen von Daten schreiben, insbesondere beim Crawlen großer Datenmengen, kann es leicht passieren, dass die IP-Adresse blockiert wird und das Crawlen nicht fortgesetzt werden kann, da viele Websites über Anti-Crawler-Maßnahmen verfügen. In diesem Artikel werden einige Gegenmaßnahmen zur Lösung dieses Problems zusammengefasst. Diese Maßnahmen können einzeln oder gleichzeitig angewendet werden, um bessere Ergebnisse zu erzielen.

Fake User-Agent

Setzen Sie den User-Agent im Anforderungsheader auf den User-Agent im Browser, um den Browserzugriff vorzutäuschen. Zum Beispiel:

headers = {'User-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'}
resp = requests.get(url,headers = headers)
Nach dem Login kopieren

Legen Sie ein zufälliges Zeitintervall zwischen jedem wiederholten Crawl fest.

# 比如:
time.sleep(random.randint(0,3))  # 暂停0~3秒的整数秒,时间区间:[0,3]
# 或:
time.sleep(random.random())  # 暂停0~1秒,时间区间:[0,1)
Nach dem Login kopieren

Gefälschte Cookies

Wenn Sie normal über den Browser auf eine Seite zugreifen können, können Sie die Cookies kopieren im Browser und verwenden Sie sie, wie zum Beispiel:

cookies = dict(uuid='b18f0e70-8705-470d-bc4b-09a8da617e15',UM_distinctid='15d188be71d50-013c49b12ec14a-3f73035d-100200-15d188be71ffd')
resp = requests.get(url,cookies = cookies)
Nach dem Login kopieren
# 把浏览器的cookies字符串转成字典
def cookies2dict(cookies):
    items = cookies.split(';')
    d = {}
    for item in items:
        kv = item.split('=',1)
        k = kv[0]
        v = kv[1]
        d[k] = v
    return d
Nach dem Login kopieren

Hinweis: Wenn die Anforderungshäufigkeit nach der Verwendung von Browser-Cookies zum Initiieren einer Anforderung zu häufig ist, wird die IP weiterhin blockiert. Zu diesem Zeitpunkt können Sie sie ausführen Führen Sie die entsprechenden Aktionen im Browser durch. Manuelle Überprüfung (z. B. Klicken auf das Überprüfungsbild usw.). Anschließend können Sie das Cookie weiterhin verwenden, um Anfragen normal zu stellen.

Verwenden Sie einen Proxy

Sie können mehrere Proxy-IPs für den Zugriff verwenden, um zu verhindern, dass dieselbe IP zu viele Anfragen stellt und blockiert wird, wie zum Beispiel:

proxies = {'http':'http://10.10.10.10:8765','https':'https://10.10.10.10:8765'}
resp = requests.get(url,proxies = proxies)
# 注:免费的代理IP可以在这个网站上获取:http://www.xicidaili.com/nn/
Nach dem Login kopieren

[Empfohlene Kurse :Python-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo verhindern Sie, dass IP vom Python-Crawler blockiert wird. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:cnblogs.com
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage