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
Antwort
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.
> 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
Danke für die Information! – confused
- 1. Parsing HTML-Seite mit HtmlAgilityPack
- 2. Einen Klick auf GearVR simulieren
- 3. win32: einen Klick simulieren, ohne Mausbewegungen zu simulieren?
- 4. Simulieren Sie einen Klick auf einen Link mit JavaScript
- 5. Parsing dynamische Webseite
- 6. Parsing einer Webseite mit Java
- 7. Bildschirm "Gerät simulieren" auf Webseite
- 8. Parsing HTML-Seite mit HtmlAgilityPack wählen Divs nach Klasse
- 9. Simulieren Sie einen Klick in einer Google Map
- 10. Simulieren Sie einen Klick auf die Registerkarte in ExtJs
- 11. Simulieren Sie einen Button-Klick auf eine Gruppenliste in Javascript
- 12. Simulieren Sie einen Button-Klick innerhalb der Anwendung (VB.NET)
- 13. Parsing-Quelle einer Webseite mit Objective-C
- 14. Parsing JavaScript Webseite in C# mit AngleSharp
- 15. Parsing einer Webseite mit Javascript (Ajax und Jquery beteiligt)
- 16. C# und HtmlAgilityPack Codierung Problem
- 17. HTMLAgilityPack und XPath Ziel
- 18. Parsing einer Wiki-gestylten Webseite, XPath-Fehler
- 19. Parsing von 3 Links zur gleichen Zeit htmlagilitypack
- 20. Parsing und einen dict Python
- 21. Set mit Inner HtmlAgilityPack
- 22. Simulieren Klicken mit Javascript auf Dokument
- 23. auf einen Link einen Klick Simulieren in Javascript/jQuery, die normale Browser-Verhalten
- 24. HtmlAgilityPack erhalten Titel und Meta
- 25. Parsing eine UTF-8-codierte Webseite
- 26. HtmlAgilityPack und Auswahl von Knoten und Unterknoten
- 27. Link-Klick von der Funktion simulieren, die auf localhost verweist
- 28. Fügen Sie einen Knoten an inneren Text mit HTMLAgilityPack
- 29. Simulieren Sie einen Mausklick in Flash mit JavaScript
- 30. Wie simuliere Ctrl-Klick oder Shift-Klick mit webdriver.io?
Bis jetzt mit meiner Erfahrung, kann es nicht mit HAP getan werden. –