在一些延迟后检索网页数据(网页抓取)

本文关键字:网页 数据 抓取 检索 延迟 | 更新日期: 2023-09-27 18:03:57

目的是在网站完成Ajax调用后从网站检索数据。当前,数据是在页面首次加载时检索的。但是所需的数据是在ajax调用后加载的div中找到的。

总结一下,场景如下:

一个网页被调用,一些参数在c#代码中传递(目前c#使用CsQuery)。当发送请求时,页面打开并显示"Loading"图片,几秒钟后检索到所需的数据。然而,cSQuery代码检索与"加载"图片的第一页内容。

代码如下

UrlBuilder ub = new UrlBuilder("<url>")
       .AddQuery("departure", "KHI")
       .AddQuery("arrival", "DXB")
       .AddQuery("queryDate", "2013-03-28")
       .AddQuery("queryType", "D");
        CQ dom = CQ.CreateFromUrl(ub.ToString());
        CQ availableFlights = dom.Select("div#availFlightsDiv");
        string RenderedDiv = availableFlights["#availFlightsDiv"].RenderSelection();

在一些延迟后检索网页数据(网页抓取)

当你"抓取"一个网站时,你是在向网络服务器发出一个呼叫,你得到了它提供的服务。如果目标站点的DOM被javascript (ajax或其他)修改,您将永远无法获得该内容,除非您将其加载到正在进行抓取的机器上的某种浏览器引擎中,该引擎能够执行javascript调用。

这个问题差不多有一年了,你可能已经得到了答案。但是我想在这里提一下这个很棒的项目——SimpleBrowser。

https://github.com/axefrog/SimpleBrowser

使DOM保持更新。