201624Jan

X-Ray: Moderner Web-Scraper für Node.js

Dokumente einlesen und spezifische Daten ausgeben — das ist der Zweck von Screen-Scraping. Web-Scraper ermöglichen diese Funktionalität also für HTML-Dokumente und DOM-Elemente. Für Node.js gibt es bereits diverse Screen-Scraper wie Osmosis oder Scraper.js. Etwas mehr Komfort ist mit X-Ray möglich. Mit dem Node.js-Scraper lassen sich beispielsweise auch Paginierungen einbauen.

X-Ray - The next web scraper

Die Bibliothek bietet einfache Selektoren, um DOM-Elemente zu durchsuchen. Unterstützt werden Tags, Klassen, Attribute oder der Inhalt eines Elements. Zudem erlaubt X-Ray Delays und Throttling, wodurch Ajax-Inhalte ausgelesen werden können. Hier ein Beispiel-Snippet für ein einfaches Scraping:

  • var xray = require('x-ray');
  • var x = xray();
  •  
  • x('https://dribbble.com', 'li.group', [{
  • title: '.dribbble-img strong',
  • image: '.dribbble-img [data-src]@data-src',
  • }])
  • .paginate('.next_page@href')
  • .limit(3)
  • .write('results.json');

Das Ergebnis wird hier in eine JSON-Datei geschrieben, kann aber auch an eine weitere Funktion übergeben und darin verarbeitet werden.