Come posso prendere uno screenshot remoto di un sito web da un URL?

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

Domanda

Quindi ho un'applicazione che fa:

  1. Prendi n numero di link da SQL

  2. Crea una nuova discussione per ogni collegamento

  3. Ottieni il codice HTML di questo sito Web con HTML-Agility-Pack per ogni thread

  4. Salva i suoi dati su SQL (dimensioni delle immagini, dimensioni della pagina, numero di parole, parole, ecc.) E salva questo processo con la sua data

Questo è per controllare i dati su un sito web e vedere se ci sono delle modifiche (come un refuso o un problema con le immagini che sono state precedentemente caricate) e voglio aggiungere uno screenshot / thumbnail a questi per ogni pagina. Come posso prendere uno screenshot dell'intera pagina durante ogni thread?

Risposta popolare

Sembra un'app interessante. Dato che hai già ottenuto l'HTML per l'intero URL (suppongo che l'app sia in esecuzione su una macchina / server con connettività Internet):

Ci sono 3 modi in cui puoi farlo (molti altri in realtà).

  1. Nella discussione: crea un oggetto System.Windows.Forms.Form, aggiungi un controllo del browser Web al suo elenco di Controlli figlio (Dock = Fill). Fai in modo che il browser passi all'URL. Una volta completata la navigazione, prendi lo screenshot della finestra di dialogo di WinForms.
  2. Nel thread - avvia il browser Chrome / IE passando l'Url come argomento della riga di comando. Attendi qualche secondo nel thread (non c'è un buon modo per sapere quando termina il rendering). Prendi lo screenshot.
  3. Nel thread: utilizzare il tipo di selenio della libreria compatibile .net, che consente di eseguire l'automazione del test dell'interfaccia utente Web e quindi di eseguire il passaggio 2. Avrai un controllo più granulare sul browser web usando questo approccio.



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché