Heim Backend-Entwicklung Python-Tutorial Wie kann ich Mozilla Firefox in Scrapy verwenden, um das Problem des Scannens des QR-Codes zum Anmelden zu lösen?

Wie kann ich Mozilla Firefox in Scrapy verwenden, um das Problem des Scannens des QR-Codes zum Anmelden zu lösen?

Jun 22, 2023 pm 09:50 PM
firefox scrapy 扫码登录

Für Crawler ist das Crawlen von Websites, die eine Anmeldung, einen Bestätigungscode oder einen Scan-Code erfordern, ein sehr problematisches Problem. Scrapy ist ein sehr einfach zu verwendendes Crawler-Framework in Python. Bei der Verarbeitung von Bestätigungscodes oder dem Scannen von QR-Codes zum Anmelden müssen jedoch einige besondere Maßnahmen ergriffen werden. Als gängiger Browser bietet Mozilla Firefox eine Lösung, die uns bei der Lösung dieses Problems helfen kann.

Das Kernmodul von Scrapy ist verdreht und unterstützt nur asynchrone Anfragen. Einige Websites müssen jedoch Cookies und Sitzungen verwenden, um angemeldet zu bleiben. Daher müssen wir Mozilla Firefox verwenden, um diese Probleme zu lösen.

Zuerst müssen wir den Mozilla Firefox-Browser und den entsprechenden Firefox-Treiber installieren, um ihn in Python verwenden zu können. Der Installationsbefehl lautet wie folgt:

pip install selenium
Nach dem Login kopieren

Dann müssen wir einige Einstellungen zur Datei „settings.py“ des Crawlers hinzufügen, um den Firefox-Browser zum Scannen des QR-Codes zum Anmelden zu verwenden. Hier ist eine Beispieleinstellung:

DOWNLOADER_MIDDLEWARES = {
'scrapy.downloadermiddlewares.cookies.CookiesMiddleware':700,
'scrapy_selenium.SeleniumMiddleware':800,
}

SELENIUM_DRIVER_NAME = 'firefox'
SELENIUM_DRIVER_EXECUTABLE_PATH = which('geckodriver')
SELENIUM_BROWSER_EXECUTABLE_PATH = '/usr/bin/firefox'
Nach dem Login kopieren

Wir können sie entsprechend unserem eigenen Betriebssystem und Firefox-Installationspfad festlegen.

Als nächstes müssen wir eine benutzerdefinierte Scrapy Spider-Klasse erstellen, um den Firefox-Browser darin zu verwenden. In dieser Klasse müssen wir einige Optionen für den Firefox-Browser festlegen, wie unten gezeigt:

from selenium import webdriver
from scrapy.selector import Selector
from scrapy.spiders import CrawlSpider
from scrapy.http import Request

class MySpider(CrawlSpider):
   name = 'myspider'

   def __init__(self):
      self.driver = webdriver.Firefox(executable_path='geckodriver', firefox_binary='/usr/bin/firefox')
      self.driver.set_window_size(1400, 700)
      self.driver.set_page_load_timeout(30)
      self.driver.set_script_timeout(30)

   def parse(self, response):
      # 网站首页处理代码
      pass
Nach dem Login kopieren

In dieser benutzerdefinierten Spider-Klasse haben wir die Klasse selenium.webdriver.Firefox verwendet, um ein Firefox-Browser-Controller-Objekt zu erstellen. Das Firefox-Browser-Controller-Objekt wird zum Öffnen der Homepage der Website verwendet und kann bei Bedarf auch andere Vorgänge ausführen.

Für Websites, die zum Anmelden das Scannen von QR-Codes erfordern, können wir den Firefox-Browser verwenden, um den QR-Code auf der Seite zu identifizieren und auf das Scanergebnis des QR-Codes zu warten. Mit Selenium können wir das Benutzerverhalten in Python simulieren, den QR-Code scannen und uns auf der Website anmelden. Der vollständige Anmeldecode zum Scannen des Codes lautet wie folgt:

def parse(self, response):
   self.driver.get(response.url)
   # 等待页面加载完成
   time.sleep(5)
   # 寻找二维码及其位置
   frame = self.driver.find_element_by_xpath('//*[@class="login-qr-code iframe-wrap"]//iframe')
   self.driver.switch_to.frame(frame)
   qr_code = self.driver.find_element_by_xpath('//*[@id="login-qr-code"]/img')
   position = qr_code.location
   size = qr_code.size

   while True:
      # 判断是否已经扫描了二维码,
      # 如果扫描了,登录,并跳出循环
      try:
         result = self.driver.find_element_by_xpath('//*[@class="login-qr-code-close"]')
         result.click()
         break
      except:
         pass

      # 如果没有扫描,等待并继续寻找
      time.sleep(5)


   # 登录后处理的代码
   pass
Nach dem Login kopieren

Im obigen Code verwenden wir zuerst die Methode self.driver.get(), um die Homepage der Website zu öffnen, und verwenden dann die Methode find_element_by_xpath(), um den QR zu finden Codeelement und ermitteln Sie dessen Position und Größe. Warten Sie dann in einer While-Schleife auf das Ergebnis des QR-Code-Scans. Wenn der QR-Code gescannt wurde, klicken Sie auf die Schaltfläche „Schließen“ und verlassen Sie die Schleife. Wenn kein Scan erfolgt, warten Sie 5 Sekunden und setzen Sie die Suche fort.

Wenn die Ergebnisse des QR-Code-Scans verfügbar sind, können wir unsere eigene Anmeldelogik ausführen. Die spezifische Verarbeitungsmethode hängt von der tatsächlichen Situation der Website ab.

Kurz gesagt: Wenn wir Scrapy für die Crawler-Entwicklung verwenden und auf eine Website stoßen, für die eine Anmeldung erforderlich ist, und die Website zum Anmelden einen Bestätigungscode oder Scancode verwendet, können wir dieses Problem mit der oben genannten Methode lösen. Mit den Browsern Selenium und Firefox können wir Benutzervorgänge simulieren, Anmeldeprobleme mit QR-Codes lösen und die erforderlichen Daten abrufen.

Das obige ist der detaillierte Inhalt vonWie kann ich Mozilla Firefox in Scrapy verwenden, um das Problem des Scannens des QR-Codes zum Anmelden zu lösen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So scannen Sie den QR-Code, um sich bei der Douyin-App anzumelden. So scannen Sie den QR-Code, um sich anzumelden So scannen Sie den QR-Code, um sich bei der Douyin-App anzumelden. So scannen Sie den QR-Code, um sich anzumelden Mar 13, 2024 pm 03:16 PM

Jeder kann die Douyin-App nutzen, um jeden Tag verschiedene kurze Videos anzusehen, um sich die Zeit zu vertreiben. Manchmal können wir eine große Anzahl kurzer Videos schneiden Es gibt jeden Tag einige neue Videos, die an Sie gesendet werden können, um den Anzeigebedürfnissen verschiedener Benutzer gerecht zu werden. Oftmals muss jeder die Scanfunktion auf der Plattform verwenden. Zum Scannen ist eine Autorisierung erforderlich Der QR-Code zum Anmelden auf diese Weise kann jedem das Gefühl geben, bequemer zu sein, aber die meisten meiner Freunde wissen immer noch nicht, wie sie den QR-Code scannen sollen. Daher ist der Herausgeber dieser Website sehr nachdenklich und bringt Ihnen einige spezifische Scans Codes.

Scrapy implementiert das Crawlen und Analysieren von Artikeln über öffentliche WeChat-Konten Scrapy implementiert das Crawlen und Analysieren von Artikeln über öffentliche WeChat-Konten Jun 22, 2023 am 09:41 AM

Scrapy implementiert das Crawlen von Artikeln und die Analyse öffentlicher WeChat-Konten. WeChat ist in den letzten Jahren eine beliebte Social-Media-Anwendung, und die darin betriebenen öffentlichen Konten spielen ebenfalls eine sehr wichtige Rolle. Wie wir alle wissen, sind öffentliche WeChat-Konten ein Ozean an Informationen und Wissen, da jedes öffentliche Konto Artikel, grafische Nachrichten und andere Informationen veröffentlichen kann. Diese Informationen können in vielen Bereichen umfassend genutzt werden, beispielsweise in Medienberichten, in der akademischen Forschung usw. In diesem Artikel erfahren Sie, wie Sie das Scrapy-Framework zum Crawlen und Analysieren von WeChat-Artikeln zu öffentlichen Konten verwenden. Scr

Wie entferne ich Firefox Snap unter Ubuntu Linux? Wie entferne ich Firefox Snap unter Ubuntu Linux? Feb 21, 2024 pm 07:00 PM

Um FirefoxSnap unter Ubuntu Linux zu entfernen, können Sie die folgenden Schritte ausführen: Öffnen Sie ein Terminal und melden Sie sich als Administrator bei Ihrem Ubuntu-System an. Führen Sie den folgenden Befehl aus, um FirefoxSnap zu deinstallieren: sudosnapremovefirefox Sie werden zur Eingabe Ihres Administratorkennworts aufgefordert. Geben Sie Ihr Passwort ein und drücken Sie zur Bestätigung die Eingabetaste. Warten Sie, bis die Befehlsausführung abgeschlossen ist. Sobald der Vorgang abgeschlossen ist, wird FirefoxSnap vollständig entfernt. Beachten Sie, dass dadurch Versionen von Firefox entfernt werden, die über den Snap-Paketmanager installiert wurden. Wenn Sie eine andere Version von Firefox auf andere Weise installiert haben (z. B. über den APT-Paketmanager), sind Sie davon nicht betroffen. Führen Sie die oben genannten Schritte durch

Scrapy-Implementierungsmethode für asynchrones Laden basierend auf Ajax Scrapy-Implementierungsmethode für asynchrones Laden basierend auf Ajax Jun 22, 2023 pm 11:09 PM

Scrapy ist ein Open-Source-Python-Crawler-Framework, das schnell und effizient Daten von Websites abrufen kann. Viele Websites verwenden jedoch die asynchrone Ladetechnologie von Ajax, was es Scrapy unmöglich macht, Daten direkt abzurufen. In diesem Artikel wird die Scrapy-Implementierungsmethode basierend auf dem asynchronen Laden von Ajax vorgestellt. 1. Ajax-Prinzip des asynchronen Ladens Ajax-Asynchronladen: Bei der herkömmlichen Seitenlademethode muss der Browser, nachdem er eine Anfrage an den Server gesendet hat, darauf warten, dass der Server eine Antwort zurückgibt und die gesamte Seite lädt, bevor er mit dem nächsten Schritt fortfährt.

Scrapy-Fallanalyse: So crawlen Sie Unternehmensinformationen auf LinkedIn Scrapy-Fallanalyse: So crawlen Sie Unternehmensinformationen auf LinkedIn Jun 23, 2023 am 10:04 AM

Scrapy ist ein Python-basiertes Crawler-Framework, mit dem schnell und einfach relevante Informationen im Internet abgerufen werden können. In diesem Artikel analysieren wir anhand eines Scrapy-Falls im Detail, wie Unternehmensinformationen auf LinkedIn gecrawlt werden. Bestimmen Sie die Ziel-URL. Zunächst müssen wir klarstellen, dass unser Ziel die Unternehmensinformationen auf LinkedIn sind. Daher müssen wir die URL der LinkedIn-Unternehmensinformationsseite finden. Öffnen Sie die LinkedIn-Website, geben Sie den Firmennamen in das Suchfeld ein und

Wie scanne ich den QR-Code, um mich bei Mango TV anzumelden? Anmeldeschritte für Mango TV-Scancode Wie scanne ich den QR-Code, um mich bei Mango TV anzumelden? Anmeldeschritte für Mango TV-Scancode Mar 15, 2024 pm 07:22 PM

Mango TV ist eine benutzerfreundliche Plattform zum Ansehen von Dramen. Es handelt sich um ein Artefakt zum Ansehen von Dramen, das speziell für Hunan Satellite TV entwickelt wurde. Hier gibt es viele umfangreiche Film- und Fernsehressourcen, darunter die neuesten Filme, beliebte Fernsehserien usw., die Sie problemlos ansehen können. Wissen Sie, wie Sie den QR-Code scannen, um sich bei Mango TV anzumelden? Die detaillierten Schritte zum Scannen des QR-Codes, um sich bei Mango TV anzumelden: 1. Durchsuchen Sie den Browser und rufen Sie die Mango TV-Website auf. 2. Nachdem Sie zum Anmelden auf die obere rechte Ecke der Seite geklickt haben, klicken Sie auf das QR-Code-Symbol. Softwarevorteile 1. Hochauflösend und flüssig: hochwertige Videoressourcen, neuer Wiedergabekern 2. Historische Anzeigefunktion: Finden Sie schnell das zuletzt angesehene Programm, um die Wiedergabe fortzusetzen. 3. Perfekte Unterstützung für Online-On-Demand und lokale Wiedergabe. 4. Formatkompatibilität : Voll kompatibel mit Mainstream-Medienformaten

Tipps zur Scrapy-Optimierung: So reduzieren Sie das Crawling doppelter URLs und verbessern die Effizienz Tipps zur Scrapy-Optimierung: So reduzieren Sie das Crawling doppelter URLs und verbessern die Effizienz Jun 22, 2023 pm 01:57 PM

Scrapy ist ein leistungsstarkes Python-Crawler-Framework, mit dem große Datenmengen aus dem Internet abgerufen werden können. Bei der Entwicklung von Scrapy stoßen wir jedoch häufig auf das Problem, doppelte URLs zu crawlen, was viel Zeit und Ressourcen verschwendet und die Effizienz beeinträchtigt. In diesem Artikel werden einige Scrapy-Optimierungstechniken vorgestellt, um das Crawlen doppelter URLs zu reduzieren und die Effizienz von Scrapy-Crawlern zu verbessern. 1. Verwenden Sie die Attribute „start_urls“ und „allowed_domains“ im Scrapy-Crawler

Verwendung von Selenium und PhantomJS im Scrapy-Crawler Verwendung von Selenium und PhantomJS im Scrapy-Crawler Jun 22, 2023 pm 06:03 PM

Verwendung von Selenium und PhantomJS in Scrapy-Crawlern Scrapy ist ein hervorragendes Webcrawler-Framework unter Python und wird häufig bei der Datenerfassung und -verarbeitung in verschiedenen Bereichen eingesetzt. Bei der Implementierung des Crawlers ist es manchmal erforderlich, Browservorgänge zu simulieren, um die von bestimmten Websites präsentierten Inhalte abzurufen. In diesem Fall werden Selenium und PhantomJS benötigt. Selenium simuliert menschliche Vorgänge im Browser und ermöglicht uns so die Automatisierung von Webanwendungstests

See all articles