[RUBY] Codierung von 10 Zeilen pro Tag ~ Scraping-Implementierung ~

Überblick

Von gestern an werde ich heute auch 10 Codezeilen schreiben.

der 2. Tag

【Thema】

Schaben

Sprache

Ziel zu liefern

Ich möchte den Hauptteil des Schabens vervollständigen, den ich gestern nicht fertigstellen konnte.

Code und Dokumentation

1. Führen Sie die Bundle-Installation erneut aus

Es war eine Bundle-Installation, die gestern hängen geblieben ist, aber als ich xcode neu installiert habe, hat es gut funktioniert lol

$ bundle install --path .bundle

Fetching gem metadata from https://rubygems.org/.................
Resolving dependencies...
Using bundler 1.17.2
Using mini_portile2 2.4.0
Fetching nokogiri 1.10.9
Installing nokogiri 1.10.9 with native extensions
Bundle complete! 1 Gemfile dependency, 3 gems now installed.
Bundled gems are installed into `./.bundle`

2. Perth mit Nokogiri

Schreiben wir nun die Verarbeitung des perspektivischen Teils mit Nokogiri. Dieses Mal möchte ich nur den Titel der Animation sehen, also werde ich den Titel extrahieren.

Ich möchte nokogiri verwenden, also ganz oben in der Datei

require 'nokogiri'

Ich werde hier beschreiben.

Und in der Fortsetzung des letzten Males


#Analysieren Sie den empfangenen HTML-Code
doc = Nokogiri::HTML.parse(response.body, nil, nil)

#Extrahieren Sie die erforderlichen Informationen aus den analysierten Informationen
doc.css(".l-searchPageRanking_unit_title").each{|div|
    puts div.text.split("\n")[2].gsub("              ","")
}

Schreiben Sie einen Prozess, um den empfangenen HTML-Code auf diese Weise zu analysieren.

3. Ausführen

Sie können Ruby mit dem folgenden Befehl ausführen.

bundle exec ruby crawler.rb

Dann

Willst du, dass Kaguya es dir sagt? ~ Liebe Gehirnschlacht der Genies ~ (TV-Anime-Video)
Evil God Drop Kick '(Dash) (TV-Anime-Video)
BNA BNA (TV-Anime-Video)
Versteckt (TV Anime Video)
Ich bin als Bösewichtstochter wiedergeboren worden, die nur die Ruinenflagge des ersten Spiels hat ... (TV-Animationsvideo)
Hören Sie die Wellen (TV-Anime-Video)
Gestern singen (TV-Anime-Video)
Obstkorb 2. Staffel (TV Anime Video)
Unschuldiger Himmel! (TV Anime Video)
Prinzessin Connect! Re: Dive (TV-Anime-Video)
Große zweite Serie 2 (TV-Anime-Video)
Buchliebhaber Shimogami - Ich kann nicht wählen, wie ich Schriftsteller werden soll - Teil 2 (TV-Anime-Video)
Tagebuch nach der Schule (TV-Anime-Video)
Kingdom 3rd Series (TV-Anime-Video)
Grapenil (TV-Anime-Video)
Problematischer Großvater (TV-Anime-Video)
Immerhin ist mein jugendromantischer Reis falsch. Komplett (TV-Anime-Video)
Shokugeki no Soma Gonozara (TV-Anime-Video)
Arte (TV-Anime-Video)
Millionaire Detective Balance: UNBEGRENZT (TV Anime Video)
Digimon Adventure: (TV-Anime-Video)
Re: Leben in einer anderen Welt ab Null(Zweite Etage)(TV Anime Video)
LISTENERS (TV-Anime-Video)
Hakushon Daimaou 2020 (TV-Anime-Video)
Aufeinanderfolgende Momo (TV-Anime-Video)

Ich denke, die Liste wird so angezeigt. Um ehrlich zu sein, ich habe das Gefühl, dass ich den Split- oder Gsub-Platz ein bisschen besser platzieren werde, aber ... ich werde es einmal tun.

Hier gibt es jedoch ein Problem: Als ich die Anzahl der diesmal hinzugefügten Codezeilen überprüfte, waren es 9 Zeilen, selbst wenn ich einen Kommentar einfügte. Also habe ich versucht, den numerischen Wert wie die Anzahl der Auswertungen auch hier zu erhalten. Ich würde gerne hinzufügen.

4. Holen Sie sich Bewertungen und Kommentare

Lassen Sie uns den Analyseprozess früher ändern, damit wir auch die Anzahl der Bewertungen und Kommentare anzeigen können.

#Extrahieren Sie die erforderlichen Informationen aus den analysierten Informationen
doc.css(".l-searchPageRanking_unit").each{|div|
    puts "Titel:" + div.css(".l-searchPageRanking_unit_title")[0].text.split("\n")[2].gsub("              ","")
    puts "Auswertung:" + div.css(".l-searchPageRanking_unit_mainBlock_starPoint strong")[0].text
    puts "Anzahl der Kommentare:" + div.css(".l-searchPageRanking_unit_mainBlock_starPoint span")[0].text + "\n\n"
}

Um kurz zu erklären, wurde im vorherigen Code nur die Überschrift wiederholt. Wenn Sie jedoch eine Auswertung wünschen, müssen Sie das Tag angeben, das die Animationsinformationen und die Schleife enthält, wie oben Ich spiele vor jedem herum.

5. Führen Sie erneut aus

Mit dem folgenden Befehl ausführen


bundle exec ruby crawler.rb

Dann

Titel:Willst du, dass Kaguya es dir sagt? ~ Liebe Gehirnschlacht der Genies ~ (TV-Anime-Video)
Auswertung:3.8
Anzahl der Kommentare:120

Titel:Evil God Drop Kick '(Dash) (TV-Anime-Video)
Auswertung:3.9
Anzahl der Kommentare:54

Titel:BNA BNA (TV-Anime-Video)
Auswertung:3.7
Anzahl der Kommentare:88

Titel:Versteckt (TV Anime Video)
Auswertung:3.6
Anzahl der Kommentare:105

Titel:Ich bin als Bösewichtstochter wiedergeboren worden, die nur die Ruinenflagge des ersten Spiels hat ... (TV-Animationsvideo)
Auswertung:3.6
Anzahl der Kommentare:114

Titel:Hören Sie die Wellen (TV-Anime-Video)
Auswertung:3.6
Anzahl der Kommentare:77

Titel:Gestern singen (TV-Anime-Video)
Auswertung:3.8
Anzahl der Kommentare:115

Titel:Obstkorb 2. Staffel (TV Anime Video)
Auswertung:3.5
Anzahl der Kommentare:23

Titel:Unschuldiger Himmel! (TV Anime Video)
Auswertung:3.4
Anzahl der Kommentare:46

Titel:Prinzessin Connect! Re: Dive (TV-Anime-Video)
Auswertung:3.5
Anzahl der Kommentare:55

Titel:Große zweite Serie 2 (TV-Anime-Video)
Auswertung:3.5
Anzahl der Kommentare:15

Titel:Buchliebhaber Shimogami - Ich kann nicht wählen, wie ich Schriftsteller werden soll - Teil 2 (TV-Anime-Video)
Auswertung:3.3
Anzahl der Kommentare:41

Titel:Tagebuch nach der Schule (TV-Anime-Video)
Auswertung:3.4
Anzahl der Kommentare:53

Titel:Kingdom 3rd Series (TV-Anime-Video)
Auswertung:3.4
Anzahl der Kommentare:20

Titel:Grapenil (TV-Anime-Video)
Auswertung:3.5
Anzahl der Kommentare:74

Titel:Problematischer Großvater (TV-Anime-Video)
Auswertung:3.4
Anzahl der Kommentare:11

Titel:Immerhin ist mein jugendromantischer Reis falsch. Komplett (TV-Anime-Video)
Auswertung:3.3
Anzahl der Kommentare:23

Titel:Shokugeki no Soma Gonozara (TV-Anime-Video)
Auswertung:3.3
Anzahl der Kommentare:30

Titel:Arte (TV-Anime-Video)
Auswertung:3.4
Anzahl der Kommentare:51

Titel:Millionaire Detective Balance: UNBEGRENZT (TV Anime Video)
Auswertung:3.2
Anzahl der Kommentare:37

Titel:Digimon Adventure: (TV-Anime-Video)
Auswertung:3.2
Anzahl der Kommentare:15

Titel:Re: Leben in einer anderen Welt ab Null(Zweite Etage)(TV Anime Video)
Auswertung:3.2
Anzahl der Kommentare:13

Titel:LISTENERS (TV-Anime-Video)
Auswertung:3.2
Anzahl der Kommentare:57

Titel:Hakushon Daimaou 2020 (TV-Anime-Video)
Auswertung:3.2
Anzahl der Kommentare:14

Titel:Aufeinanderfolgende Momo (TV-Anime-Video)
Auswertung:3.1
Anzahl der Kommentare:26

Wie oben erwähnt, können Sie die Bewertung und die Anzahl der Kommentare für jede Animation erhalten und entscheiden, welche Sie sehen möchten! !! !!

PS Persönlich habe ich Soma vorangetrieben, aber die Dynamik hat sich in letzter Zeit offensichtlich verlangsamt ... Dann dachte ich, ich würde mir das hoch bewertete "Kaguya" oder den "Obstkorb" ansehen, der nach der ersten Amtszeit weinte. Ich werde.

Ich möchte den Code, den ich heute geschrieben habe, auch auf Github veröffentlichen. (Ich weiß nicht, ob es sich lohnt) https://github.com/itayayuichiro/anikore_crawler

Recommended Posts

Codierung von 10 Zeilen pro Tag ~ Scraping-Implementierung ~
Codierung von 10 Zeilen pro Tag ~ Aufbau der Kratzumgebung ~
Ich möchte die Anzahl der Foto-AC-Downloads grafisch darstellen [Scraping-Implementierung] ~ 10 Zeilen pro Tag Codierung ~
Erstellen Sie einen Mechanismus zum Buchen von Reservierungen an Qiita [Reservierungsbuchung] ~ Codieren von 10 Zeilen pro Tag ~ ~
Erstellen Sie einen Mechanismus zum Buchen von Reservierungen an Qiita [Entwurf einer Akquisition] ~ Codierung von 10 Zeilen pro Tag ~ ~
Ich möchte die Anzahl der Foto-AC-Downloads grafisch darstellen [MySQL-Ring-Kooperation] ~ Codierung von 10 Zeilen pro Tag ~