2016-04-19 31 views
0

Ich scraping eine bestimmte Webseite mit Hilfe von HAP, und ich möchte auf die Schaltfläche Senden auf der Seite zugreifen, aber das Problem ist, ich weiß nicht, wie es in HAP und getan werden konnte C#, kann ich das irgendwie machen?Parsing Webseite mit HtmlAgilityPack und simulieren einen Klick

+0

Bis jetzt mit meiner Erfahrung, kann es nicht mit HAP getan werden. –

Antwort

3

Das HTML Agility Pack ist kein Browser. Es kann also zwar eine HTML-Datei analysieren, es gibt jedoch keine Möglichkeit, wirklich damit zu interagieren. Sie können das submit Objekt finden, lesen Sie seine Eigenschaften und so weiter, aber Sie können es nichts machen.

Sie haben zwei Möglichkeiten:

  • Entweder das Formular lesen, ein Http Request-Objekt erstellen, das die Formularfelder und post-Methode übereinstimmt und es an den Server senden. Das ist alles manuelle Arbeit. Mit dem Agility Pack können Sie nur die Felder im Formular und deren Eigenschaften auflisten.

  • Wenn Sie mit der Seite interagieren müssen, benötigen Sie einen Browser. Es gibt Headless-Browser wie PhantomJS, die die Seite tatsächlich laden, das Javascript analysieren und ausführen, was vom Server gesendet wird. Es gibt Wrapper um diese Wrapper für C#, eine von such examples is Awesonium. Es ähnelt dem HTML Agility Pack insofern, als es Ihnen ermöglicht, HTML-Dokumente zu analysieren, aber es geht einen Schritt weiter und führt es tatsächlich aus, ohne jemals einen Browser-Bildschirm anzuzeigen.

+0

> Erstellen Sie ein HTTP-Request-Objekt, das den Formularfeldern entspricht Ich stimme Jesse zu. Sie können Fiddler verwenden, um den HTML-Austausch zwischen Ihrem Computer und dem Server in einer echten browserbasierten Sitzung aufzuzeichnen, in der Sie physisch auf die Schaltfläche "Senden" klicken und sehen, was zurück zum Server gesendet wird. Dies erleichtert es, diesen Austausch durch C# nachzuahmen. Dies kann natürlich fehlschlagen, wenn der Server Anti-Fälschungs-Tickets erzeugt, was bedeutet, dass Sie nicht immer die gleichen Werte erneut einreichen können (mit Ausnahme einiger weniger, die Sie geändert hätten). Das macht Awesonium großartig! – Tamayi

+0

Danke für die Information! – confused

Verwandte Themen