Comment puis-je prendre une capture d'écran à distance d'un site Web à partir d'une URL?

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

Question

J'ai donc une application qui fait:

  1. Prendre une quantité n de liens à partir de SQL

  2. Crée un nouveau fil pour chaque lien

  3. Obtenez le code HTML de ce site Web avec HTML-Agility-Pack pour chaque thread

  4. Enregistre ses données en SQL (taille des images, taille de la page, nombre de mots, mots, etc.) et enregistre ce processus avec sa date

C’est pour vérifier les données sur un site Web et voir s’il ya des changements (comme une faute de frappe ou un problème avec les images précédemment téléchargées) et je souhaite ajouter une capture d’écran / vignette à ceux-ci pour chaque page. Comment puis-je prendre une capture d'écran de la page entière au cours de chaque discussion?

Réponse populaire

On dirait une application intéressante. Comme vous obtenez déjà le code HTML pour l'URL complète (je suppose que l'application est exécutée sur une machine / un serveur disposant d'une connexion Internet):

Il y a 3 façons de faire cela (beaucoup plus en réalité).

  1. Dans le Thread - créez un objet System.Windows.Forms.Form, ajoutez un contrôle WebBrowser à la liste des contrôles enfants (Dock = Remplissage). Faites le navigateur naviguer à l'URL. Une fois la navigation terminée, prenez la capture d'écran de la boîte de dialogue WinForms.
  2. Dans le fil de discussion, lancez le navigateur Web Chrome / IE en transmettant l’URL en tant qu’argument de ligne de commande. Attendez quelque temps dans le fil (il n'y a pas de bonne façon de savoir quand le rendu est terminé). Prenez la capture d'écran.
  3. Dans le fil de discussion - Utilisez une bibliothèque compatible .net de type sélénium - pour vous aider à tester l'automatisation de l'interface Web puis à passer à l'étape 2. En utilisant cette approche, vous aurez un contrôle plus granulaire sur le navigateur Web.


Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow