Ich scraping eine bestimmte Webseite mit 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 C # getan werden könnte, gibt es eine Möglichkeit, die ich tun könnte?
Das HTML Agility Pack ist kein Browser. Daher kann es zwar eine HTML-Datei parsen, es gibt jedoch keine Möglichkeit, wirklich damit zu interagieren. Sie können das submit
Objekt finden, seine Eigenschaften lesen und so weiter, aber Sie können nichts machen.
Sie haben zwei Möglichkeiten:
Lesen Sie das Formular, erstellen Sie ein HTTP-Anfrageobjekt, das mit den Formularfeldern und der Postmethode übereinstimmt, und senden Sie es an den Server. 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 #, eines dieser Beispiele ist 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.