c # .net4 - Regex vs HTML Agilität Paket

c# html-agility-pack memory regex

Frage

Was ist schneller? Ich habe gerade einen Web-Scraper erstellt, der das HTML Agility-Paket verwendet und sehr viel Speicher verbraucht.

Bei der Profilerstellung mit einem Speicherprofiler habe ich festgestellt, dass die Instanzen HTMLDocument, HTMLNode usw. den größten Speicherbedarf haben.

Ich habe das Gefühl, dass es vielleicht schneller und effizienter wäre, Regex zu verwenden, irre ich mich?

Akzeptierte Antwort

Ein reg-ex wird viel schneller sein als html agility pack.

Aber Sie sollten bedenken, dass HTML nicht immer gut geformt sein muss. Die Suche nach den richtigen Daten, die Sie nur mit reg-ex verwenden möchten, kann fehlschlagen. Browser sind sehr fehlerverzeihend.

Agility Pack ist ein großartiges Werkzeug. Es bietet eine Menge Funktionen für den Speicher, den es verbraucht.


Beliebte Antwort

Abhängig davon, was genau Sie tun, könnte es wirklich möglich sein, Dinge zu beschleunigen und einige mem mit Regex freizugeben. Die Frage ist - wie starr und wohlgeformt sind die Seiten, aus denen Sie Daten extrahieren. Regex wird viel leichter durch vollkommen gültige, aber unerwartete HTML-Konstrukte verwechselt, die Sie in der freien Wildbahn finden könnten.



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum