[Rails] So implementieren Sie Scraping

Nachdem Sie gelernt haben, wie man Scraping implementiert, schreibe ich es als Lernausgabe.

Was kratzt nach dem Lesen dieses Artikels? Was soll ich tun, um es zu implementieren? Ich kann verstehen.

Was ist Schaben? Informationen von einer Website lernen und verarbeiten, um neue Informationen zu generieren. Besuchen Sie beispielsweise verschiedene Restaurants und erstellen Sie eine Preisliste.

Ich möchte mehr Details wissen! Wenn Sie das glauben, suchen Sie bitte bei Google.

Jetzt werde ich schreiben, wie man Scraping implementiert.

So implementieren Sie Scraping

1 Installieren Sie die gemfile "mechanize"

gem 'mechanize'

Geben Sie dann bundle install in das Terminal ein

2 Erstellen Sie eine Instanz der Mechanize-Klasse

agent = Mechanize.new #Erstellen Sie eine Instanz der Mechanize-Klasse und weisen Sie sie dem Variablenagenten zu

3 Holen Sie sich HTML-Informationen zur Website Verwenden Sie die Instanzmethode "get" der Mechanize-Klasse, um den HTML-Code der Website abzurufen, die Sie durchsuchen möchten.

page = agent.get("https://www.google.com/?hl=ja")

4 Verwenden Sie die Suchmethode, um nach HTML-Elementen zu suchen Die Suchmethode wird für das Objekt verwendet, das die von der get-Methode erhaltenen Seiteninformationen enthält. Dies ermöglicht es, den Inhalt des angegebenen HTML-Elements anhand der erfassten HTML-Informationen der Website zu durchsuchen. Selbst wenn nur ein entsprechendes HTML-Tag-Element vorhanden ist, wird der Rückgabewert in Form eines Arrays zurückgegeben.

 agent = Mechanize.new
  page = agent.get("https://www.google.com/?hl=ja")
  elements = page.search('h1')

↑ Die Informationen des h1-Elements in https://www.google.com/?hl=ja werden erfasst.

5 inner_text Methode Wenn Sie den Text der von der Suchmethode erhaltenen HTML-Informationen abrufen möchten, verwenden Sie die Methode inner_text.

agent = Mechanize.new
page = agent.get("URL der Website, die Sie kratzen möchten")
elements = page.search('h2 a') #Suchen Sie unter h2 element nach einem Element

elements.each do |ele|
  puts ele.inner_text
end

6 Methode get_attribute Wenn Sie den Wert eines HTML-Attributs abrufen möchten, verwenden Sie die Methode get_attribute. Beispielsweise hat der HTML-Code eines a-Tag-Elements ein Attribut "href", dessen Wert die URL des Linkziels ist. Sie können den Wert des durch das Argument angegebenen Attributs ermitteln, indem Sie get_attribute (Attribut) schreiben.

agent = Mechanize.new
page = agent.get("URL der Website, die Sie kratzen möchten")
elements = page.search('h2 a') #Suchen Sie unter h2 element nach einem Element

elements.each do |ele|
  puts ele.get_attribute('href') # puts ele[:href]Vielleicht
end

Zusammenfassung des Schabens

● Erstellen Sie eine Instanz der Mechanize-Klasse ● Rufen Sie die HTML-Informationen der Website mit der Instanzmethode .get (URL der Website, für die Sie Informationen abrufen möchten) der Mechanize-Klasse ab. ● Lernen Sie, indem Sie das Tag-Element mit den gewünschten Daten mit der Suchmethode angeben ● Verwenden Sie die Methoden inner_text und get_attribute, um die gewünschten Informationen für die HTML-Informationen des erfassten Tag-Elements zu erhalten.

Recommended Posts

[Rails] So implementieren Sie Scraping
[Rails] So implementieren Sie die Sternebewertung
So implementieren Sie Suchfunktionen in Rails
Wie schreibe ich Rails
So deinstallieren Sie Rails
So implementieren Sie Ranking-Funktionen in Rails
So implementieren Sie die Image-Veröffentlichung mithilfe von Schienen
So implementieren Sie eine ähnliche Funktion in Rails
[Schienen] Wie poste ich Bilder?
[Rails] Verwendung von Enum
[Rails] Verwendung von Enum
Wie man Schienenrouten liest
Verwendung von Rails Join
[Rails] Verwendung der Validierung
[Schienen] Wie man Samen macht
Wie schreibe ich Rails Routing
[Rails] So installieren Sie simple_calendar
[Java] So implementieren Sie Multithreading
[Rails] So installieren Sie reCAPTCHA
[Schienen] Verwendung von Scope
So implementieren Sie eine nette Funktion in Ajax mit Rails
[Rails, JS] So implementieren Sie die asynchrone Anzeige von Kommentaren
[Rails] Wie man Edelstein "devise" benutzt
[Schienen] Verwendung von Geräten (Hinweis)
[Rails] Verwendung von Flash-Nachrichten
[Rails] Anzeigen von Datenbankinformationen
[Schienen] So verhindern Sie den Bildschirmübergang
Verwendung von Ruby on Rails
So stellen Sie Bootstrap auf Rails bereit
[Rails] So beschleunigen Sie das Docker-Compose
[Schienen] So fügen Sie neue Seiten hinzu
[Rails] Wie schreibe ich eine Ausnahmebehandlung?
[Rails] So installieren Sie ImageMagick (RMajick)
[Rails] So installieren Sie Font Awesome
[Rails] Verwendung von Active Storage
So installieren Sie jQuery in Rails 6
[Einführung in Rails] Verwendung von Render
So installieren Sie Swiper in Rails
So implementieren Sie die Datumsberechnung in Java
So implementieren Sie den Kalman-Filter mit Java
[Rails] Wie man von erb zu haml konvertiert
[Rails] So laden Sie Bilder mit Carrierwave hoch
So fügen Sie ein Video in Rails ein
[Rails] Verwendung von ActiveRecord :: Bitemporal (BiTemporalDataModel)
[Schienen] Verwendung der Kartenmethode
Verwendung von MySQL im Rails-Tutorial