Programmatisch das CSS-Layout analysieren

8

Ich möchte ein paar Blogs spinnen und programmatisch ihre HTML- und CSS-basierten Layouts analysieren, um z.B. Wenn die Seitenleiste links oder rechts vom Hauptinhalt liegt, wie viele Spalten und wie breit sie sind.

Wie würde ich das am besten machen? Gibt es irgendwelche Werkzeuge oder Bibliotheken, die ich benutzen kann?

(Ich würde eine Lösung in Python oder PHP bevorzugen.)

    
Christian Davén 16.02.2011, 10:56
quelle

3 Antworten

0

Es scheint, als könnte dies über PhantomJS erreicht werden, mit einem Javascript, etwa so:

%Vor%     
Christian Davén 03.08.2011, 12:23
quelle
2

Das klingt nach einer extrem harten Aufgabe, wenn Sie reines serverseitiges CSS und HTML-Parsing verwenden - Sie müssten die Rendering-Engine des Browsers effektiv neu erstellen, um zuverlässige Ergebnisse zu erhalten.

Je nachdem, wofür Sie das brauchen, könnte ich mir einen Weg vorstellen, der in etwa so aussieht:

  • Rufen Sie Seiten und Stylesheets mit etwas wie wget mit --page-requisites

  • ab
  • Dann entweder:

    • Gehen Sie jede heruntergeladene Seite mit einem Werkzeug wie Selenium durch, suchen Sie nach Elementnamen und geben Sie ihre Positionen aus (wenn das in Selenium, ich nehme an, es ist, aber ich weiß es nicht genau)

    • Erstellen Sie ein Stück jQuery, das Sie in jede der heruntergeladenen Seiten einfügen. Die jQuery sucht nach Elementen mit dem Namen "Sidebar", "Toolbar" usw., erhält ihre Positionen, speichert die Ergebnisse in einem lokalen AJAX-Snippet und fährt mit der nächsten heruntergeladenen Seite fort. Sie müssen nur die erste Seite im Browser öffnen, der Rest wird automatisch passieren. Nicht einfach umzusetzen, aber möglich.

Wenn Sie eine clientseitige Anwendungsplattform wie .NET verwenden können, ist es möglicherweise einfacher, eine benutzerdefinierte Anwendung zu erstellen, die ein Browsersteuerelement enthält, auf dessen DOM Sie freier zugreifen können, als nur jQuery zu verwenden.

    
Pekka 웃 16.02.2011 11:03
quelle
0

Suchen Sie das?

Ссылка

Es war der erste Treffer bei einer Google-Suche. Es gab mindestens vier andere, die vielversprechend aussahen. Vielleicht sollten Sie Google ausprobieren, Ihre Suchergebnisse auflisten und spezifische Ratschläge zu bestimmten Paketen einholen.

    
S.Lott 16.02.2011 11:02
quelle

Tags und Links