Heim  >  Artikel  >  Backend-Entwicklung  >  Implementierung der Python-Crawler-Webseitenanmeldung

Implementierung der Python-Crawler-Webseitenanmeldung

coldplay.xixi
coldplay.xixinach vorne
2020-11-30 17:48:326332Durchsuche

Einführung in die Python-Anmeldung für Reptilien-Webseiten.

Kostenlose Empfehlung:

Python-Video-TutorialImplementierung der Python-Crawler-Webseitenanmeldung

Ich glaube, dass beim Schreiben eines Python-Crawlers beim Crawlen der Website einige Anmeldeprobleme auftreten, z. B. die Eingabe eines Bestätigungscodes beim Anmelden, z Einloggen Wie kann man solche Probleme lösen, wenn man auf die Bild-Drag-and-Drop-Überprüfung stößt? Generell gibt es zwei Möglichkeiten. Verwenden Sie Cookies zum Anmelden

Wir können uns mit Cookies anmelden, zuerst das Browser-Cookie abrufen und dann die Anforderungsbibliothek verwenden, um uns direkt beim Cookie anzumelden. Der Server geht also davon aus, dass Sie ein echter angemeldeter Benutzer sind Es gibt Ihnen einen angemeldeten Benutzerstatus zurück. Diese Methode ist im Grunde sehr nützlich, die meisten Websites, die Bestätigungscodes zum Anmelden erfordern, können durch Cookie-Anmeldung gelöst werden:

 #! -*- encoding:utf-8 -*-
    import requests    import random    import requests.adapters    # 要访问的目标页面
    targetUrlList = [
        "https://httpbin.org/ip",
        "https://httpbin.org/headers",
        "https://httpbin.org/user-agent",
    ]

    # 代理服务器
    proxyHost = "t.16yun.cn"
    proxyPort = "31111"

    # 代理隧道验证信息
    proxyUser = "username"
    proxyPass = "password"

    proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {
        "host": proxyHost,
        "port": proxyPort,
        "user": proxyUser,
        "pass": proxyPass,
    }

    # 设置 http和https访问都是用HTTP代理
    proxies = {
        "http": proxyMeta,
        "https": proxyMeta,
    }

    # 访问三次网站,使用相同的Session(keep-alive),均能够保持相同的外网IP
    s = requests.session()

    # 设置cookie
    cookie_dict = {"JSESSION":"123456789"}
    cookies = requests.utils.cookiejar_from_dict(cookie_dict, cookiejar=None, overwrite=True)
    s.cookies = cookies    for i in range(3):
        for url in targetUrlList:
            r = s.get(url, proxies=proxies)
            print r.text
若存在验证码,此时采用resp**e = requests_session.post(url=url_login, data=data)是不行的,做法应该如下:

resp**e_captcha = requests_session.get(url=url_login, cookies=cookies)resp**e1 = requests.get(url_login) # 未登陆resp**e2 = requests_session.get(url_login) # 已登陆,因为之前拿到了Resp**e Cookie!resp**e3 = requests_session.get(url_results) # 已登陆,因为之前拿到了Resp**e Cookie!

Simulierte Anmeldung

Ich muss hier ein altes Sprichwort sagen , die Vorgänger pflanzen Bäume und die Nachkommen werden es tun Um die Coolness zu genießen, wollte ich die Artikel über Zhihu Yanxuan lesen, blieb aber beim Suchen hängen und fand eine Bibliothek, die die Anmeldung simuliert einfach zu verwenden. Gemäß dem Grundsatz, gute Dinge nicht zu teilen, um Harmonie zu verhindern, werde ich es hier nicht sagen.

Die konkrete Idee besteht darin, die Anmeldung über eine Anfrage zu simulieren, dann den Bestätigungscode zurückzugeben und dann den Bestätigungscode einzugeben, um sich erfolgreich anzumelden.

                                                                                                

Das obige ist der detaillierte Inhalt vonImplementierung der Python-Crawler-Webseitenanmeldung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:learnku.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen