带有 C# 的擎天柱无头浏览器



有人可以告诉我如何使用Optimus(无头浏览器(nuget包与C#一起从URL获取响应。 我还希望页面上的javascript像phantomjs一样自动执行。

相当简单的套件:

  1. 首先创建一个引擎组件(常见于动态和静态页面(:

    Engine engine = new Engine();

  2. 打开要检索的 html 文档的网址:

    a( 不等待 javascript 中添加的任何元素:

    engine.OpenUrl("http://google.com").Wait();

    b( 等待使用 javascript 添加的任何元素:

    engine.OpenUrl("http://google.com")

    然后:

    • engine.WaitDesappearingOfId("some-id")
    • engine.WaitId("some-id")
    • engine.WaitDocumentLoad()
    • engine.WaitSelector("#some-id")
    • engine.WaitSelector(".some-class")

现在你打开 URL,有两种方法可以做到这一点——加载文档(在执行任何 JavaScript 之前(:

更完整的示例:

public static string dynamicLoadingPage()
{
    var engine = new Engine();
    engine.OpenUrl("https://html5test.com");
    var tagWithValue = engine.WaitSelector("#score strong").FirstOrDefault();
    System.Console.WriteLine("Score: " + tagWithValue.InnerHTML);
}

否则:

static string staticLoadingPage()
{
   var engine = new Engine();
   engine.OpenUrl("http://google.com").Wait();
   Console.WriteLine("The first document child node is: " + engine.Document.FirstChild);
   Console.WriteLine("The first document body child node is: " + engine.Document.Body.FirstChild);
   Console.WriteLine("The first element tag name is: " + engine.Document.ChildNodes.OfType<HtmlElement>().First().TagName);
   Console.WriteLine("Whole document innerHTML length is: " + engine.Document.DocumentElement.InnerHTML.Length);
}

相关内容

  • 没有找到相关文章

最新更新