其目的是在完成Ajax调用后从网站检索数据。当前,当页面第一次加载时,正在检索数据。但是所需的数据是在调用ajax之后加载的div中找到的。
总而言之,场景如下:
通过在C#代码中传递一些参数来调用网页(当前对c#使用CsQuery )。当发送请求时,页面打开,显示“正在加载”的图片,几秒钟后检索到所需的数据。然而,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();发布于 2013-03-14 19:16:24
当你“抓取”一个网站时,你是在调用web服务器,你得到了它所提供的服务。如果目标站点的DOM被javascript (ajax或其他)修改,您将永远不会获得该内容,除非您将其加载到执行抓取的机器上的某种浏览器引擎中,该引擎能够执行javascript调用。
发布于 2014-08-21 12:40:36
几乎一年前的问题,你可能已经得到了答案。但我想在这里提到一个很棒的项目-- SimpleBrowser。
https://github.com/axefrog/SimpleBrowser
它可以让你的DOM保持更新。
https://stackoverflow.com/questions/15407566
复制相似问题