2

我对 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);
    }
}
4

2 回答 2

0

所以,第一件事是你的选择器是 jQuery 语法,需要适应 csQuery,类似于:dom[".ng-scope"].Eq(0).Find(".ng-binding").Html();

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

于 2015-05-13T03:32:07.090 回答
0

德赖特,你是绝对正确的!在我自己再次分析之后,我意识到我所指的类是动态创建的,但在源代码中不存在。我必须将 DOM 追溯到调用者并从那里开始工作。

于 2015-05-14T03:35:00.227 回答