2017-05-07 2 views
2

Hey ich bin auf der Suche nach einigen HTML-Parsing-Bibliotheken in Kristall. Etwas ähnlich wie Nokogiri für Rubin. Ich habe einen regulären Ausdruck, würde aber eine HTML-Parsing-Bibliothek bevorzugen, weil html + regex == bad. Vielen Dank.Gibt es HTML-Parsing-Bibliotheken?

+0

ist nicht nokogiri Kristall kompatibel? – marmeladze

+0

@marmeladze keine Rubin Bibliotheken sind „Kristall kompatibel“ auf die gleiche Art und Weise Sie Java nicht verwenden können, Bibliotheken von JavaScript, sie sind völlig verschiedene Sprachen. – RX14

+0

https://github.com/veelenga/awesome-crystal#htmlxml-parsing –

Antwort

4

Der Standardweg in der Crystal-Standardbibliothek ist XML.parse_html. Dies wird Ihnen eine XML::Node geben, die eine ziemlich schöne Schnittstelle hat.

Wenn Sie verwenden müssen, um CSS-Selektoren zu verwenden, können Sie Crystagiri verwenden, obwohl ich sonst nicht viel Nutzen über das Angebot der stdlib sehe.

2

Nach mehreren Stunden Googling habe ich gerade über myhtml, modest und Crystagiri herausgefunden. Alle sind HTML-Parsing-Bibliotheken.

+0

fügen Sie pls-Links zu Ihrer Antwort hinzu –

0

Ich bin der Schöpfer von Crystagiri. Dies ist eine Bibliothek HTML-Parser für Crystal (wie die erstaunliche Nokogiri Ruby-Juwel Ich will nicht behaupten, dass Crystagiri viel wie Nokogiri tut, aber Sie können CSS-Selektor verwenden

Bellow ein einfaches Beispiel verwenden:..

require "crystagiri" 

doc = Crystagiri::HTML.from_url "http://example.com/" 
puts doc.css("li > strong.title") { |tag| puts tag.node} 
# => <strong class="title"> .. </strong> 
# => <strong class="title"> .. </strong> 

Dank Kristall Lang, Crystagiri ist drei Mal schneller als Nokogiri (zu meinem Test accroding).