Da das Kursprojekt die Verwendung eines CNKI-Crawlers erfordert, habe ich nach der Suche auf GitHub das CNKI-Download-Warehouse von CyrusRenty gefunden, aber nach dem Klonen stellte ich fest, dass es nicht verwendbar war, also habe ich es geändert, mit Ausnahme der Funktionen zum Herunterladen von Dokumenten und Bestätigungscodes. der Rest. Funktionstests sind verfügbar.
Da Zhiwang allein durch den Zugriff auf das Campus-Netzwerk die Schule nicht identifizieren kann (es muss über das VPN einer anderen Schule erfolgen), kann ich o(╥﹏╥)o nicht zum Herunterladen der Dokumentfunktion verwenden und kann sie daher nicht ändern. Ich habe keine Bestätigungscodes gefunden, wenn ich versuche, beim Crawlen jeder Seite ein ausreichendes Intervall sicherzustellen, sollte dieses Problem vermieden werden.
PS: Bei Problemen wie NoneType habe ich sie mit einem groben Try-Catch ignoriert. Wenn Sie also nach Abschluss des Crawlings feststellen, dass in einer bestimmten Excel-Zeile keine Daten vorhanden sind, löschen Sie sie einfach als Rauschen ~ Wenn Sie benötigen dringend alle vollständigen Felder. Reichen Sie ein Problem ein und ich schaue, ob ich Ihnen helfen kann.
PS: Manchmal wird beim Ausführen des Crawlers der folgende Fehler gemeldet:
In diesem Fall schalten Sie bitte das globale Proxy-VPN aus, geben Sie die CNKI-Adresse in den Browser ein, um zu sehen, ob Sie normal eingeben können, und versuchen Sie dann immer wieder, das Programm auszuführen.
Wenn Sie Fragen zu diesem Projekt haben, können Sie ein Problem direkt ansprechen. Ich hoffe, ich kann Ihnen so gut wie möglich helfen! Wenn Sie besseren Code integrieren möchten, freut sich Feichang über PR!
Der folgende Inhalt stammt vom Originalautor und ich zolle dem Originalautor meine Anerkennung∠(°ゝ°)
Das Projekt ist ein auf Python3 implementierter Crawler zum Crawlen von CNKI-Daten. Es kann gemäß der erweiterten CNKI-Suche durchsucht werden und bietet detaillierte Informationen zum Crawlen, z. B. grundlegende Dokumentinformationen, Dokument-Downloads und Dokumentzusammenfassungen.
Der Umsetzungsprozess kann auf meinem Blog eingesehen werden
Das Programm läuft wie folgt ab:
Die detaillierte Informations-Excel-Tabelle lautet wie folgt:
Laden Sie caj wie folgt herunter:
Das Erfassen von Daten durch Senden von Parsing-Paketen weist eine etwas höhere Leistung auf als die Verwendung von Selenium und anderen Methoden.
Mit der erweiterten Suchfunktion von CNKI können Sie Dokumente effizienter suchen und abrufen.
Die Funktion zum Erfassen detaillierter Informationen und zum Herunterladen von Caj-Dokumenten kann entsprechend der Anti-Crawler-Situation des Netzwerks und von CNKI selektiv aktiviert werden.
Verwenden Sie Excel-Tabellen, um schnell die erforderlichen Literaturzusammenfassungen und andere Informationen anzuzeigen. Sie können sie entsprechend den von Excel bereitgestellten Download-Links selektiv herunterladen, um zu verhindern, dass das CNKI-Netzwerk aufgrund übermäßiger Downloads rückwärts gecrawlt wird.
tesserocr
wird im Teil zur Verarbeitung des Bestätigungscodes verwendet, aber der Überprüfungseffekt ist derzeit nicht sehr gut, sodass die manuelle Identifizierung von Bestätigungscodes standardmäßig aktiviert ist.Wenn
tesseract
nicht lokal installiert ist, können Sie es zuerst installieren und dannpip install tesserocr
ausführen. Oder kommentieren Sie die Zeilen 15, 63 und 64 der DateiCrackVerifyCode.py
aus und führen Sie dann den Installationsbefehl aus.
pip install -r Anforderungen.txt
# Config.ini ist die Projektkonfigurationsdatei # 0 ist geschlossen 1 ist geöffnet isDownloadFile = 1 # Ob die Datei heruntergeladen werden soll isCrackCode=0 # Ob der Bestätigungscode automatisch erkannt werden soll isDetailPage=0 # Ob die Dokumentdetails in excelisDownLoadLink gespeichert werden # Ob um den Download-Link in Excel zu speichern, stepWaitTime=5 # Pausenzeit für jede Download- und Crawl-Detailseite
Es wird empfohlen, die Download- und Crawling-Detailseiten nicht gleichzeitig zu öffnen und die Pausenzeit sollte nicht weniger als 3 Sekunden betragen.
Python run-spider.py
Nachdem der Crawler ausgeführt wurde, werden alle Daten im Datenordner gespeichert. Der alte Datenordner wird bei jedem erneuten Ausführen des Programms automatisch gelöscht.
CNKI_download -- data 存放所有爬取数据 -- CAJs 存放所有下载的caj原文 -- xxxxxxx.caj -- xxxxxxx.caj -- Links.txt 所有爬取文献的下载链接 -- ReferenceList.txt 爬取文献简要信息 -- Reference_detail.xls 文献详细信息excel表
Die Voraussetzung für die Ausführung des Projekts ist, dass der Computer über IP auf CNKI zugreifen und es herunterladen kann (die meisten Schulen haben Datenbanken gekauft, als ich mit dem Schreiben fertig war, stellte ich fest, dass es immer noch eine Sprungschnittstelle gibt und dies auch der Fall ist). in Zukunft hinzugefügt werden.
Wenn „Zugriff vom Remote-Host verweigert“ angezeigt wird, können Sie die Pausenzeit für jede Sitzung entsprechend verlängern.
Wenn Sie es einmal ausführen, denken Sie daran, alle Dateien im Datenordner zu schließen, bevor Sie es erneut ausführen. Andernfalls wird möglicherweise ein Fehler gemeldet, da der Datenordner nicht gelöscht werden kann.
Wenn Sie nur Informationen crawlen, ohne sie herunterzuladen, kann es nach der Ausführung von etwa 1.000 Dokumenten vorkommen, dass Sie den Bestätigungscode wiederholt eingeben (auch wenn dieser korrekt eingegeben wurde). Es ist noch nicht bekannt, was der Grund ist
Vervollständigen Sie andere nicht implementierte Funktionen für erweiterte Suchen.
Fügen Sie die angegebenen Seiteninformationen zum Starten des Crawlings hinzu, um ab dem letzten Fehler erneut zu crawlen.
Fügen Sie der CNKI-Schnittstelle einen öffentlichen Netzwerksprung hinzu, um sicherzustellen, dass Benutzer, die sich nicht über IP anmelden können, diesen Crawler weiterhin verwenden können.
Erstellen Sie einen Proxy-Pool, um den Proxy-IP-Zugriff basierend auf öffentlichen Netzwerksprüngen zu implementieren und so die Anzahl der von CNKI blockierten IP-Adressen und die Anzahl der Eingaben von Bestätigungscodes zu reduzieren.
Schreiben Sie Programmimplementierungs- und Analyseprozessaufzeichnungen.