Czy ktokolwiek mógłby zaproponować przeglądarkę bez nagłówka dla .NET, która obsługuje pliki cookie i automatyczne wykonywanie javascript?C# przeglądarka bezgłowicowa z obsługą javascript dla robota
Odpowiedz
Nie mam informacji o bezgłowej przeglądarce opartej na .NET, ale zawsze jest PhantomJS, która jest C/C++ i działa całkiem dobrze, pomagając w testowaniu jednostkowym JS przy pomocy QUnit.
Istnieje również inny istotny tu pytanie, które mogłyby pomóc - Headless browser for C# (.NET)?
Selenium+HtmlUnitDriver/GhostDriver jest dokładnie to, czego szukasz. Podsumowując, Selenium to biblioteka do korzystania z różnych przeglądarek do celów automatyzacji - testowania, skrobania, automatyzacji zadań.
Istnieją różne klasy WebDriver, za pomocą których można obsługiwać rzeczywistą przeglądarkę. HtmlUnitDriver jest bezgłowy. GhostDriver to WebDriver dla PhantomJS, więc możesz napisać C#, podczas gdy PhantomJS rzeczywiście wykona ciężki lifting.
Fragment kodu z Selenium docs dla przeglądarki Firefox, ale kod z GhostDriver (PhantomJS) lub HtmlUnitDriver jest prawie identyczny.
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();
}
}
Jeśli uruchomić to na komputerze z systemem Windows można użyć rzeczywisty sterownik Firefox/Chrome ponieważ otworzy rzeczywistą okno przeglądarki, która będzie działać jak zaprogramowany w języku C#. HtmlUnitDriver jest najbardziej lekki i szybki.
Udało mi się uruchomić Selenium dla C# (FirefoxDriver) na Linuksie przy użyciu Mono. Przypuszczam, że HtmlUnitDriver będzie działał równie dobrze, jak inne, więc jeśli potrzebujesz szybkości - sugeruję, abyś wybrał Mono (możesz tworzyć, testować i kompilować z Visual Studio na Windowsie, bez problemu) + Selenium HtmlUnitDriver działający na hoście Linux bez komputera .
Masz na myśli [formant WebBrowser] (http://msdn.microsoft.com/en-us/library/2te2y1x6.aspx)? –
możliwy duplikat [WebClient uruchamia javascript] (http://stackoverflow.com/questions/5372277/webclient-runs-javascript) –
Jak planujesz z niego korzystać? – jrummell