2011-01-06 9 views
3

Ich bin auf der Suche nach Code schreiben, die visuelle Analyse von Webseiten, vorzugsweise mit Ruby. Mein Code muss in der Lage sein, die obere, linke, Breite, Höhe, Hintergrundfarbe, Farbe und Schriftgröße für alle Elemente im DOM zu bestimmen. Natürlich können diese Werte nur berechnet werden, wenn alle CSS angewendet wurden. Also, ich denke nicht, dass Nokogiri für den Job bereit ist. Letztendlich versuche ich, diese Daten in einem VIPS-ähnlichen (Vision-Based Page Segmentierung) Algorithmus zu verwenden, um den Hauptinhalt in heruntergeladenen Nachrichtenartikeln zu finden.visuelle Analyse von Webseiten in Ruby

Ich habe erwogen, Watir für Chrome oder Firefox zu verwenden und dann die Daten zu extrahieren. Das Problem ist, dass Browser nicht kopflos durch Watir laufen können (glaube ich). Letztendlich wird dieser Code auf einem Array von Linux-Servern in einem Rechenzentrum ausgeführt. Daher wird der Code keinen einfachen Zugriff auf einen X-Server haben, um den Browser anzuzeigen.

Ich nehme an, eine Lösung besteht darin, Watir zu verwenden und einen kopflosen X-Server auf den Linux-Servern auszuführen. Das ist ein bisschen schmerzhaft, aber es sieht momentan nach meiner besten Option aus.

Hat jemand bessere Ideen?

Antwort

4

Sie können sicherlich Browser kopflos mit Selenium und Xvfb ausführen. Ich habe eine Los des kopflosen Kratzen mit dieser Kombination in der Vergangenheit getan.

+0

Will Selen gelten CSS-Styling? –

+0

Ja, da es einen echten Browser statt XML treibt. – regularfry

1

Verwenden Sie unbedingt Xvfb

z. nohup Xvfb: 1 -Bildschirm 0 1024x768x24 2> & 1>/dev/null &

Dann öffnen nur firefox auf diesem Display-Port: 1

Auch dieses kopflos gem Besuche https://github.com/leonid-shevtsov/headless