2 Stimmen

welche Layout-Engine zur Ermittlung der Koordinaten von HTML-Elementen auf der Webseite?

Ich bin dabei, einige Web-Daten-Klassifizierung Aufgabe und dachte, wenn ich die bekommen könnte Koordinaten von HTML-Elementen, wie sie auf einem Webbrowser erscheinen würden ohne Berücksichtigung von CSS oder Javascript, auf die in der Webseite verwiesen wird.

Meine Programmiersprache ist C++ und der Bedarf an Ergebnissen für einige Millionen Seiten, also muss es schnell gehen. Ich weiß, dass es eine Microsoft COM-Komponente gibt, die die Seite in einem Webbrowser-Steuerelement darstellt und dann nach der Position der verschiedenen HTML-Tags abgefragt werden kann. Aber das ist für meinen Fall nicht geeignet, da zuerst die ganze Seite gerendert wird, was sehr viel Zeit in Anspruch nimmt.

Wie ich herausgefunden habe, gibt es Open-Source-Layout-Engines wie WebKit und Gecko, die wahrscheinlich für diesen Zweck verwendet werden können. Aber das ist ein riesiges Stück Code, und ich brauche jemanden, der mich zu den richtigen Klassen oder richtigen Modulen leitet, in die ich schauen kann, oder eine frühere/ähnliche Arbeit, die jemand vorher gemacht hat. Bitte lasst mich auch wissen, was ihr für eine gute Wahl haltet, wenn ich den bestehenden Code für die Verwendung mit mehreren Threads anpassen möchte, um ihn schneller zu machen.

Danke

1voto

M. Williams Punkte 4895

Im Allgemeinen werden Sie feststellen, dass verschiedene Suchmaschinen die HTML-Dateien auf ihre eigene Art und Weise darstellen und die Ergebnisse unterschiedlich ausfallen.

Die Sache ist die, dass, wenn Sie zu einem konkreten Browser-Engine bleiben, was Sie zu tun ist irgendwie bringen diese Engine in Ihr Projekt und mit Engine-Schnittstelle, um diese Koordinaten abzurufen. Eine ziemlich schwierige Aufgabe, einfach weil Sie eine Menge Dokumentation lesen und sich durch Tausende von Dateien wühlen müssen.

Ich denke, der richtige Ansatz wäre, diese Aufgabe an einer Stelle zu veröffentlichen, die für die von Ihnen gewählte Seitenwiedergabe-Engine spezifisch ist. (gecko/webkit/...)

Wenn Sie es vorziehen, sich an etwas MS-spezifisches zu halten, wird es wohl einfacher sein, aber ich kann Ihnen nicht mit so etwas wie Klassennamen oder Codeabschnitten helfen, die Sie sehen wollen. Wahrscheinlich jemand anderes könnte Sie in diesem Fall führen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X