Wie kann ich einen Remote-Screenshot einer Website von einer URL aus erstellen?

c# html html-agility-pack multithreading webpage-screenshot

Frage

Also habe ich eine Anwendung, die tut:

  1. Nehmen Sie eine Anzahl von Links von SQL

  2. Erstellt einen neuen Thread für jeden Link

  3. Holen Sie HTML-Code dieser Website mit HTML-Agility-Pack für jeden Thread

  4. Speichert seine Daten in SQL (Bildgröße, Seitengröße, Wörteranzahl, Wörter usw.) und speichert diesen Prozess mit seinem Datum

Dies ist, um die Daten auf einer Website zu überprüfen und zu sehen, ob es Änderungen gibt (wie ein Tippfehler oder ein Problem mit Bildern, die zuvor hochgeladen wurden) und ich möchte für jede Seite einen Screenshot / ein Thumbnail hinzufügen. Wie kann ich während jedes Threads einen Screenshot der gesamten Seite erstellen?

Beliebte Antwort

Scheint wie eine interessante App. Da Sie bereits den HTML-Code für die gesamte URL erhalten (ich würde annehmen, dass die App auf einem Computer / Server läuft, der über eine Internetverbindung verfügt):

Es gibt 3 Möglichkeiten, wie Sie dies tun können (viele mehr tatsächlich).

  1. Erstellen Sie in dem Thread ein System.Windows.Forms.Form-Objekt Hinzufügen eines Webbrowser-Steuerelements zu seiner Liste untergeordneter Steuerelemente (Dock = Fill). Lasse den Browser zur URL navigieren. Sobald die Navigation abgeschlossen ist, nehmen Sie den Screenshot des WinForms-Dialogs.
  2. Im Thread - starten Chrome / IE Webbrowser die URL als Befehlszeilenargument übergeben. Warten Sie irgendwann im Thread (es gibt keine gute Möglichkeit zu wissen, wann das Rendern beendet wird). Mach den Screenshot.
  3. Im Thread - Verwenden Sie den Selen-Typ der .net-kompatiblen Bibliothek - mit dem Sie die Web-UI-Testautomatisierung durchführen und dann Schritt 2 durchführen können. Mit diesem Ansatz haben Sie mehr Kontrolle über den Webbrowser.



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