1

https://www.teamdev.com/dotnetbrowser只能在 IIS .NET 服务器上运行吗?我们想:

1) 使用 ASP.NET 在某个用户操作时创建一个新线程

2) 将来自各种外部网站的各种 DOM 加载到实例中,如果它

3) 每一张等待 30 秒,这样他们的图片轮播就可以加载各种图片

4) 在等待的 30 秒内检查 DOM,看看通过 Ajax 加载了哪些新图像

5) 记录这些图像的 URL

4

1 回答 1

3

是的,您可以在 IIS 环境中使用屏幕外模式使用 DotNetBrowser。

下一个示例显示如何创建使用 DotNetBrowser 的基本 ASP.NET 控制器。

public class BrowserController : Controller
{
    private Browser dotNetBrowser;

    protected override void Initialize(RequestContext requestContext)
    {
        base.Initialize(requestContext);

        //Create off-screen browser instance
        dotNetBrowser = BrowserFactory.Create();

        //Subscribe to the web page loaded event
        dotNetBrowser.DocumentLoadedInFrameEvent += DotNetBrowser_DocumentLoadedInMainFrameEvent;
    }

    public ActionResult UrlHandle()
    {
        string url = "google.com"; //Set URL you need to load
        dotNetBrowser.LoadURL(url);

        return View();
    }

    private void DotNetBrowser_DocumentLoadedInMainFrameEvent(object sender, FrameLoadEventArgs frameLoadEventArgs)
    {
        //Get image references from DOM
        IEnumerable<string> imageReferences = dotNetBrowser.GetDocument()
                                                           .GetElementsByTagName("img")
                                                           .Select(element => (element as DOMElement)?.Attributes["src"]);

        foreach (string imageReference in imageReferences)
        {
            //Do whatever you need
            Console.WriteLine(imageReference);
        }

        //Dispose browser instance after all required actions
        dotNetBrowser.Dispose();
    }
}

您可以通过以下链接找到与您的目标相关的有用信息:

资源处理 - https://dotnetbrowser.support.teamdev.com/support/solutions/articles/9000110154-handling-resources-loading

Ajax 请求处理 -如何使用 dotnetbrowser 获取 ajax 请求响应正文?

于 2017-03-27T14:33:23.493 回答