Heim > Artikel > Backend-Entwicklung > Implementierung der Python-Crawler-Webseitenanmeldung
Python-Video-Tutorial
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!