1

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

总结一下,场景如下:

使用 C# 代码中传递的一些参数调用网页(当前使用 CsQuery for 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();
4

2 回答 2

4

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

于 2013-03-14T11:16:24.113 回答
1

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

https://github.com/axefrog/SimpleBrowser

它使您的 DOM 保持更新。

于 2014-08-21T04:40:36.230 回答