将选择器与 csQuery 一起使用

Using selectors with csQuery

我是 csQuery 的新手,我很难开始。以下是我的简单 asp.net 控制器。它返回以下内容:$('.ng-scope').eq(0).find($('.ng-binding')).html()。引用的 类 确实存在。我这样做对吗?

 public class HomeController : Controller
{
    ViewModel Vm = new ViewModel();
    public ActionResult Index()
    {
        var url = "http://www.weather.com/weather/5day/l/08817:4:US";
        var web = new WebClient();
        web.Headers[HttpRequestHeader.UserAgent] = "Hello"; //in case they require it
        var html = web.DownloadString(url);
        CQ dom = html;
        var x = dom["$('.ng-scope').eq(0).find($('.ng-binding')).html()"];

        Vm.Day = x.Render();
        return View(Vm);
    }
}

因此,首先是您的选择器采用 jQuery 语法,需要针对 csQuery 进行调整,例如:dom[".ng-scope"].Eq(0).Find(".ng-binding").Html();

其次,我将 url 放入浏览器,然后查看源代码。没有一个 class 为 "ng-scope" 的元素。所以我认为您需要分析您正在下载的页面的来源,以便您可以重新制定查询。

DWright,您完全正确!自己又分析了一遍,才发现我指的类是动态创建的,但在source.I中不存在,就得把DOM追溯回调用者并从那里开始工作。