https://www.teamdev.com/dotnetbrowser只能在IIS .NET服务器上运行吗?我们想:
1)使用ASP.NET根据特定用户操作创建新线程
2)将各种外部网站的各种DOM加载到实例中
3)每个等待30秒,以便他们的图像轮播可以加载各种图像
4)在30秒等待期间检查DOM以查看通过Ajax加载的新图像
5)记录这些图像的URL
答案 0 :(得分: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();
}
}
您可以通过以下链接找到与您的目标相关的有用信息:
Ajax请求处理 - how to get ajax request response body using dotnetbrowser?