Dieser Artikel stellt Ihnen das NetEase Cloud Music Crawler-Beispiel eines Python3-Crawlers vor. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird Ihnen hilfreich sein.
Das Ziel dieses Mal ist es, alle Kommentare zum angegebenen Song auf NetEase Cloud Music zu crawlen und eine Wortwolke zu generieren
Spezifische Schritte:
1: JS-Verschlüsselung implementieren
Es ist nicht schwierig, diese Ajax-Schnittstelle zu finden. Das Problem besteht darin, dass die übergebenen Daten durch JS-Verschlüsselung abgerufen werden der js-code.
Wenn Sie das Debuggen abbrechen, können Sie feststellen, dass die Daten durch die Funktion window.asrsea in core_8556f33641851a422ec534e33e6fa5a4.js?8556f33641851a422ec534e33e6fa5a4.js verschlüsselt werden.
Durch weitere Suche können Sie die folgende Funktion finden:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
|
Wir müssen also Python verwenden, um die oben genannten vier Funktionen zu implementieren. Die erste Funktion zum Generieren einer Zufallszeichenfolge ist nicht schwierig. Der implementierte Code lautet wie folgt:
1 2 3 4 5 6 7 8 9 |
|
Die zweite Funktion ist eine Funktion zum Implementieren der AES-Verschlüsselung, und die Verwendung der AES-Verschlüsselung erfordert die Verwendung der Crypto-Bibliothek. Wenn diese Bibliothek nicht installiert ist, müssen Sie zuerst die Pycrypto-Bibliothek und dann die Crypto-Bibliothek installieren. Nach erfolgreicher Installation: Wenn beim Importieren kein Crypto, sondern nur Crypto vorhanden ist, öffnen Sie zunächst den Ordner Libsite-packagescrypto im Python-Installationsverzeichnis. Wenn sich darin ein Cipher-Ordner befindet, kehren Sie zu Libsite- zurück. Benennen Sie die Pakete im Verzeichnis crypto in Crypto um, und dann sollte es erfolgreich importiert werden.
Da die Länge des AES-verschlüsselten Klartexts ein Vielfaches von 16 sein muss, müssen wir die erforderliche Auffüllung des Klartexts durchführen, um sicherzustellen, dass seine Länge ein Vielfaches von 16 ist. Der Modus der AES-Verschlüsselung ist AES.MODE_CBC. Initialisierungsvektor iv ='0102030405060708′.
Der Code zur Implementierung der AES-Verschlüsselung lautet wie folgt:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
Der dritte ist die Funktion zur Implementierung der RSA-Verschlüsselung, Bei der RSA-Verschlüsselung sind sowohl Klartext als auch Chiffretext Zahlen, Der Chiffretext von RSA ist das Ergebnis mod N der E-Potenz der Zahl, die den Klartext darstellt Die Länge der nach der RSA-Verschlüsselung erhaltenen Zeichenfolge beträgt 256. Sie ist nicht lang genug und wir füllen sie mit x Zeichen.
Der Code zum Implementieren der RSA-Verschlüsselung lautet wie folgt:
1 2 3 4 5 6 7 8 9 10 |
|
Die vierte Funktion ist eine Funktion, die zwei Verschlüsselungsparameter abruft. Die vier übergebenen Parameter sind der erste Parameter JSON.stringify (i3x) ist der folgende Inhalt, bei dem die Offset- und Limit-Parameter erforderlich sind. Der Wert des Offsets beträgt (Anzahl der Seiten-1)*20 und der Wert des Limits beträgt 20
1 |
|
Der zweiter Parameter, die Werte des dritten und vierten Parameters werden basierend auf Zj4n.emj erhalten:
Der Wert von encText wird über AES übergeben Zweimal verschlüsselt, encSecKey wird durch RSA-Verschlüsselung erhalten, und der spezifische Code für die Implementierung lautet wie folgt:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
2. Analysieren und speichern Sie Kommentare
Sie können es herausfinden Anzeigen der Vorschauinformationen Der Benutzername und der Kommentarinhalt werden in Daten im JSON-Format
gespeichert, so dass die Analyse einfach ist. Extrahieren Sie einfach den Spitznamen und den Inhalt direkt. Die erhaltenen Daten werden in einer TXT-Datei mit dem Dateinamen des Songs gespeichert. Der implementierte Code lautet wie folgt:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
3. Wortwolke generieren
Bevor Sie mit diesem Schritt fortfahren, müssen Sie die Module „jieba“ und „wordcloud“ installieren. Das Modul „jieba“ wird für Chinesisch verwendet Wortsegmentierung, das Wordcloud-Modul ist ein Modul zum Generieren von Wortwolken, das Sie selbst erlernen können.
Ich werde nicht näher auf diesen Teil eingehen. Der spezifische Code lautet wie folgt:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
Der vollständige Code wurde auf Github hochgeladen (einschließlich der Datei „font.ttf“): https:/ /github.com/QAQ112233/WangYiYun
Das obige ist der detaillierte Inhalt vonBeispiel für einen Python3-Crawler: NetEase Cloud-Musik-Crawler. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!