Qualcuno potrebbe suggerire un browser headless per .NET che supporti i cookie e l'esecuzione automatica di JavaScript?C# browser headless con supporto javascript per crawler
risposta
Non sono a conoscenza di un browser headless basato su .NET ma c'è sempre PhantomJS che è C/C++ e funziona abbastanza bene per l'assistenza ai test di unità di JS con QUnit.
C'è anche un'altra questione rilevante qui che potrebbe aiutare voi - Headless browser for C# (.NET)?
Selenium+HtmlUnitDriver/GhostDriver è esattamente quello che stai cercando. Semplificato, Selenium è una libreria per l'utilizzo di vari browser per scopi di automazione: testing, scraping, task automation.
Esistono diverse classi WebDriver con le quali è possibile utilizzare un browser effettivo. HtmlUnitDriver è senza testa. GhostDriver è un WebDriver per PhantomJS, quindi puoi scrivere C# mentre in realtà PhantomJS eseguirà il sollevamento pesi.
Snippet di codice da Selenium docs per Firefox, ma il codice con GhostDriver (PhantomJS) o HtmlUnitDriver è quasi identico.
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Support.UI;
class GoogleSuggest
{
static void Main(string[] args)
{
// driver initialization varies across different drivers
// but they all support parameter-less constructors
IWebDriver driver = new FirefoxDriver();
driver.Navigate().GoToUrl("http://www.google.com/");
IWebElement query = driver.FindElement(By.Name("q"));
query.SendKeys("Cheese");
query.Submit();
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
wait.Until((d) => { return d.Title.ToLower().StartsWith("cheese"); });
System.Console.WriteLine("Page title is: " + driver.Title);
driver.Quit();
}
}
Se si esegue questo su macchina Windows è possibile utilizzare il driver attuale Firefox/Chrome, perché si aprirà una finestra del browser vero e proprio che opererà come programmato in C#. HtmlUnitDriver è il più leggero e veloce.
Ho eseguito con successo Selenium per C# (FirefoxDriver) su Linux utilizzando Mono. Suppongo che HtmlUnitDriver funzioni altrettanto bene degli altri, quindi se hai bisogno di velocità - ti suggerisco di andare su Mono (puoi sviluppare, testare e compilare con Visual Studio su Windows, nessun problema) + Selenium HtmlUnitDriver in esecuzione su host Linux senza desktop .
- 1. Heisenbug con proprio browser headless
- 2. Browser javascript headless node.js con funzionalità di screenshot?
- 3. Selenium con browser Firefox headless in Windows
- 4. Configurazione di Firefox headless con MozRepl
- 5. Utilizzo del browser headless Node.js con ibrido di selenio?
- 6. IDE con C e supporto Javascript incorporato
- 7. Rileva supporto per la transizione con JavaScript
- 8. XMLHttpRequest: supporto browser per sendAsBinary?
- 9. Supporto del browser per stopImmediatePropagation?
- 10. Rileva supporto browser per comunicazione inter-finestra
- 11. Web crawler in grado di interpretare JavaScript
- 12. Semplice web crawler in C#
- 13. window.devicePixelRatio supporto del browser
- 14. . Supporto browser SVG
- 15. Supporto browser per numeri di pagina CSS
- 16. JEditorPane con supporto JavaScript e CSS
- 17. Scansione Javascript per compatibilità con il browser
- 18. Supporto browser E4X
- 19. Supporto browser DocumentFragment
- 20. Supporto del browser Ember.js?
- 21. Supporto browser Trasparenza PNG
- 22. Rileva supporto browser per HTML Media Capture
- 23. Rilevamento supporto browser SNI (nome server) in javascript
- 24. Programmatic Python Browser con JavaScript
- 25. Supporto browser per CSS: first-child e: last-child
- 26. Supporto browser modulo layout CSS3
- 27. C++ Supporto per Specifiers lunghezza
- 28. Headless infinite scroll selenio
- 29. Esiste un browser headless per .NET (per i test di interfaccia utente Web automatizzati)?
- 30. Esiste un modo per eseguire unit test per una webapp WebGL in un browser headless
Si intende il [controllo WebBrowser] (http://msdn.microsoft.com/en-us/library/2te2y1x6.aspx)? –
possibile duplicato di [WebClient esegue javascript] (http://stackoverflow.com/questions/5372277/webclient-runs-javascript) –
Come pensi di usarlo? – jrummell