gpt4 book ai didi

c# headless 浏览器,支持爬虫的 javascript

转载 作者:太空狗 更新时间:2023-10-29 18:20:22 26 4
gpt4 key购买 nike

谁能推荐支持 cookie 和自动执行 javascript 的 .NET headless 浏览器?

最佳答案

Selenium+HtmlUnitDriver/GhostDriver正是您要寻找的。过于简单化,Selenium 是用于使用各种浏览器实现自动化目的的库 - 测试、抓取、任务自动化。

您可以使用不同的 WebDriver 类来操作实际的浏览器。 HtmlUnitDriver是一个 headless 的。 GhostDriver是 PhantomJS 的 WebDriver,因此您可以编写 C#,而实际上 PhantomJS 将完成繁重的工作。

来自 Selenium docs 的代码片段对于 Firefox,但是 GhostDriver (PhantomJS) 或 HtmlUnitDriver 的代码几乎相同。

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();
}
}

如果您在 Windows 机器上运行它,您可以使用实际的 Firefox/Chrome 驱动程序,因为它会打开一个实际的浏览器窗口,该窗口将按照您的 C# 中的编程运行。 HtmlUnitDriver 是最轻量级和最快速的。

我已经使用 Mono 在 Linux 上成功运行了用于 C# (FirefoxDriver) 的 Selenium | .我想 HtmlUnitDriver 也能像其他的一样工作,所以如果你需要速度 - 我建议你选择 Mono(你可以在 Windows 上使用 Visual Studio 开发、测试和编译,没问题)+ 在没有桌面的 Linux 主机上运行的 Selenium HtmlUnitDriver .

关于c# headless 浏览器,支持爬虫的 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15254817/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com