https://www.teamdev.com/dotnetbrowser只能在 IIS .NET 服务器上运行吗?我们想:
1) 使用 ASP.NET 在某个用户操作时创建一个新线程
2) 将来自各种外部网站的各种 DOM 加载到实例中,如果它
3) 每一张等待 30 秒,这样他们的图片轮播就可以加载各种图片
4) 在等待的 30 秒内检查 DOM,看看通过 Ajax 加载了哪些新图像
5) 记录这些图像的 URL
https://www.teamdev.com/dotnetbrowser只能在 IIS .NET 服务器上运行吗?我们想:
1) 使用 ASP.NET 在某个用户操作时创建一个新线程
2) 将来自各种外部网站的各种 DOM 加载到实例中,如果它
3) 每一张等待 30 秒,这样他们的图片轮播就可以加载各种图片
4) 在等待的 30 秒内检查 DOM,看看通过 Ajax 加载了哪些新图像
5) 记录这些图像的 URL
是的,您可以在 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();
}
}
您可以通过以下链接找到与您的目标相关的有用信息:
Ajax 请求处理 -如何使用 dotnetbrowser 获取 ajax 请求响应正文?