延迟一段时间后检索网页数据(网页抓取)

时间:2013-03-14 11:09:33

标签: c# ajax web-scraping csquery

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

总结一下,情景如下:

调用一个网页,其中一些参数在C#代码中传递(目前使用CsQuery进行c#)。当发送请求时,页面打开并显示“正在加载”图片,几秒钟后检索到所需数据。然而,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();

2 个答案:

答案 0 :(得分:4)

当您“刮”某个网站时,您正在调用Web服务器并获得它所提供的服务。如果目标站点的DOM被javascript(ajax或其他)修改,除非你将它加载到正在进行抓取的机器上的某种浏览器引擎中,否则你将永远不会获得该内容,即能够执行javascript调用。

答案 1 :(得分:0)

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

https://github.com/axefrog/SimpleBrowser

它可以让您的DOM更新。